/* Hero Section - Premium Typography with Dramatic Entrance */

/* Fixed NET background for entire page */
.hero {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: transparent;
    z-index: 0;
    /* Behind content sections but visible */
    overflow: hidden;
}

.heroStage {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: -1;
}

.heroBackground {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.8s ease-in-out;
    background:
        radial-gradient(78% 68% at 74% 78%, rgba(31, 44, 98, 0.14) 0%, rgba(8, 8, 15, 0) 62%),
        linear-gradient(180deg, #07080d 0%, #07080d 100%);
}

.heroBackground.is-active {
    opacity: 1;
}

.heroGlow {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(64px);
    mix-blend-mode: screen;
}

.heroGlow--primary {
    width: 52vw;
    height: 52vw;
    right: -8vw;
    top: 36vh;
    background: radial-gradient(circle,
            rgba(176, 76, 255, 0.22) 0%,
            rgba(77, 48, 214, 0.14) 38%,
            rgba(0, 0, 0, 0) 72%);
}

.heroGlow--secondary {
    width: 34vw;
    height: 34vw;
    right: 10vw;
    top: 14vh;
    background: radial-gradient(circle,
            rgba(74, 170, 255, 0.18) 0%,
            rgba(31, 89, 255, 0.1) 40%,
            rgba(0, 0, 0, 0) 74%);
}

.heroLinesFrame {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.heroLinesInner {
    position: absolute;
    inset: 0;
    opacity: 0.95;
    transition: transform 0.5s ease, opacity 0.5s ease;
}

/* Gradient overlay — baştan aktif */
.heroGradient {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    background: radial-gradient(circle at 50% 40%,
            rgba(0, 0, 0, 0.2) 0%,
            rgba(0, 0, 0, 0.6) 55%,
            rgba(0, 0, 0, 0.85) 100%);
    backdrop-filter: blur(1.5px);
}

/* Text overlay container - absolute inside hero, doesn't follow scroll */
.heroOverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    padding: 24px clamp(24px, 5vw, 72px) 24px clamp(28px, 7vw, 108px);
    z-index: 10;
    opacity: 0;
    transition: opacity 800ms ease-out;
    pointer-events: none;
}

.heroOverlay.active {
    opacity: 1;
}

.heroOverlay.hidden {
    opacity: 0;
    pointer-events: none;
}

.heroContent {
    position: relative;
    pointer-events: auto;
    max-width: min(860px, 56vw);
    width: 100%;
    margin: 0;
    text-align: left;
    padding: 0;
    z-index: 20;
    top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    transform: translate3d(0, -1.25vh, 0);
}

/* Base title styles */
.heroTitle {
    font-family: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
    color: #ffffff;
    /* Using 'rem' ensures it scales with browser zoom.
       Clamp ensures responsiveness without breaking zoom support excessively
       (vw units fight zoom, so we rely more on rem) */
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.1;
    /* Reduced spacing */
    margin-bottom: 12px;
    letter-spacing: -0.02em;
    z-index: 2;
    position: relative;
    text-align: left;
    width: 100%;
    text-shadow: 0 0.5vmin 3vmin rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Align items start */
    gap: 0;
    /* Removing gap, using line-height or padding if needed */
}

/* Responsive adjustments */
@media (max-width: 1200px) {
    .heroTitle {
        font-size: 3rem;
    }
}

@media (max-width: 768px) {
    .heroTitle {
        font-size: 2.25rem;
        text-align: center;
    }
}

.hero-text-line {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    white-space: nowrap;
    /* Prevent wrapping within the line */
    line-height: 1;
    /* Tight line height */
}

/* Target the p tag generated by BlurText */
.heroTitleBlur {
    margin: 0 !important;
    padding: 0;
    width: 100%;
}

/* Slogan modifier */

/* Character reveal animation */
.heroTitle .word {
    display: inline-block;
    opacity: 0;
    transform: translateY(20px);
    filter: blur(8px);
    animation: wordReveal 800ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
    animation-play-state: paused;
    margin-right: 0.25em;
}

.heroOverlay.active .heroTitle .word {
    animation-play-state: running;
}

@keyframes wordReveal {
    0% {
        opacity: 0;
        transform: translateY(20px);
        filter: blur(8px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

/* Gradient Text Style */
/* Gradient Text Style */
.hero-gradient-text {
    /* Animated Gradient: Turquoise -> Purple -> Pink -> Turquoise */
    background: linear-gradient(to right,
            #22d3ee,
            /* Cyan-400 */
            #a855f7,
            /* Purple-500 */
            #ec4899,
            /* Pink-500 */
            #22d3ee
            /* Loop back to Cyan */
        );
    background-size: 200% auto;

    /* Clip text */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    /* Fallback */

    /* Animation */
    animation: shineFlow 4s linear infinite;

    /* Layout & Sizing */
    display: block;
    width: 100%;
    font-size: 1.6em;
    font-weight: 800;
    margin-top: 10px;
    line-height: 1.25;
    padding-bottom: 0.2em;

    /* Glow */
    filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.3));
}

/* Ensure children spans (from BlurText) respect the gradient */
.hero-gradient-text span {
    color: transparent !important;
    background: inherit;
    -webkit-background-clip: text;
    background-clip: text;
}

@keyframes shineFlow {
    to {
        background-position: 200% center;
    }
}

/* Subtitle */
.heroSubtitle {
    display: block;
    max-width: 760px;
    margin: 18px 0 22px;
    color: rgba(240, 244, 255, 0.82);
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: clamp(15px, 2vw, 18px);
    line-height: 1.7;
    font-weight: 500;
    text-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
}

/* Hero CTA Button */
.hero-cta-button {
    /* Glassmorphism */
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.2);
    color: #ffffff;

    padding: 12px 36px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
    /* Removed uppercase */
    letter-spacing: 0.5px;

    /* Reduced margin */
    margin-top: 0px;

    opacity: 0;
    animation: fadeInButton 1s ease-out 1.5s forwards;

    /* FORCE INTERACTION */
    pointer-events: auto !important;
    position: relative;
    z-index: 100 !important;
}

.hero-cta-button:hover {
    transform: translateY(-2px) scale(1.02);
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0 0 30px rgba(255, 255, 255, 0.4), inset 0 0 20px rgba(255, 255, 255, 0.1);
}

@keyframes fadeInButton {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

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

/* Typing cursor */
.cursor {
    display: none;
}

/* Glow effect behind title */
.heroTitle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    background: radial-gradient(ellipse at center,
            rgba(0, 0, 0, 0.4) 0%,
            transparent 70%);
    filter: blur(20px);
    opacity: 1;
    z-index: -1;
}

.hero-scroll-spacer {
    height: 120vh;
    position: relative;
    z-index: 2;
    pointer-events: none;
}

/* Responsive */
@media (max-width: 768px) {
    .hero {
        height: 100svh;
    }

    .heroStage {
        height: 100svh;
    }

    .heroBackground {
        overflow: hidden;
    }

    .heroGlow {
        filter: blur(44px);
    }

    .heroGlow--primary {
        width: 115vw;
        height: 115vw;
        left: 50%;
        right: auto;
        top: auto;
        bottom: -22vw;
        transform: translateX(-50%);
        background: radial-gradient(circle,
                rgba(176, 76, 255, 0.2) 0%,
                rgba(98, 58, 235, 0.13) 42%,
                rgba(0, 0, 0, 0) 74%);
    }

    .heroGlow--secondary {
        width: 84vw;
        height: 84vw;
        right: -34vw;
        top: 20svh;
        background: radial-gradient(circle,
                rgba(88, 168, 255, 0.12) 0%,
                rgba(45, 104, 255, 0.06) 38%,
                rgba(0, 0, 0, 0) 72%);
    }

    .heroLinesInner {
        inset: auto -42vw -3svh auto;
        width: 145vw;
        height: 68svh;
        opacity: 0.56;
        filter: blur(1px);
        mask-image: linear-gradient(to bottom,
                transparent 0%,
                rgba(0, 0, 0, 0.3) 12%,
                rgba(0, 0, 0, 0.78) 26%,
                black 40%);
        -webkit-mask-image: linear-gradient(to bottom,
                transparent 0%,
                rgba(0, 0, 0, 0.3) 12%,
                rgba(0, 0, 0, 0.78) 26%,
                black 40%);
    }

    .heroOverlay {
        min-height: 100svh;
        height: 100svh;
        padding: calc(env(safe-area-inset-top, 0px) + 5.4rem) 20px 2rem;
        align-items: center;
        justify-content: flex-start;
        text-align: center;
    }

    .heroContent {
        padding-left: 0;
        padding-right: 0;
        max-width: 100%;
        width: min(100%, 24rem);
        margin: 0 auto;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.65rem;
        transform: translateY(-2.8rem);
    }

    .hero-text-line {
        justify-content: center;
        width: 100%;
        white-space: normal !important;
        flex-wrap: wrap;
        word-break: normal;
    }

    .heroTitle {
        align-items: center;
        font-size: clamp(1.8rem, 8vw, 2.5rem);
        line-height: 1.15;
        letter-spacing: -0.035em;
        margin-bottom: 0;
        text-align: center;
    }

    .hero-cta-button {
        margin-left: auto;
        margin-right: auto;
        padding: 12px 28px;
        font-size: 1rem;
        margin-top: 0.2rem;
    }

    .hero-gradient-text {
        width: auto;
        font-size: 1.08em;
        margin-top: 0.2rem;
        line-height: 1.12;
        padding-bottom: 0.12em;
    }

    .heroSubtitle {
        display: block;
        max-width: 100%;
        margin: 14px auto 18px;
        font-size: 0.98rem;
        line-height: 1.6;
        padding: 0 6px;
    }

    .hero-scroll-spacer {
        height: 120svh;
    }
}

.heroEyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    margin-bottom: 14px;
    padding: 0.5rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(11, 16, 25, 0.55);
    color: rgba(226,235,247,0.9);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 28px rgba(0,0,0,0.22);
}

@media (max-width: 768px) {
    .heroEyebrow {
        margin-left: auto;
        margin-right: auto;
    }
}
