/* Landing page hero: headline, Discord call to action, and the route-map tour of how XGame works.
 * Site traps respected here (see style.css): no <span> inside <a> ("a span" is the scroll-arrow rule),
 * every <button> resets the global button margins, and no clickable element carries an id (fancybox
 * "clicks" whatever element id matches the URL hash).
 */

.hero {
    position: relative;
    overflow: hidden;
    color: #e8f5e9;
    background-color: #0b2414;
    background-image: url("/img/topo-a60aeb2681e2a0bedfdfe1dd18da1f00.svg"), radial-gradient(ellipse at 20% 0%, #1d5a31 0%, rgba(11, 36, 20, 0) 60%),
        linear-gradient(160deg, #103a1f 0%, #0b2414 60%, #081a0e 100%);
    background-size: cover, 100% 100%, 100% 100%;
    background-position: center, 0 0, 0 0;
    padding: 56px 0 64px;
}

.hero-row {
    align-items: center;
}

.hero-kicker {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.hero-kicker b {
    display: inline-block;
    padding: 4px 11px;
    border-radius: 999px;
    border: 1px solid rgba(125, 220, 154, 0.35);
    background: rgba(125, 220, 154, 0.08);
    color: #b9f6ca;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.hero h1 {
    font-size: 44px;
    line-height: 1.12;
    font-weight: 500;
    margin: 0 0 16px;
    color: #ffffff;
}

.hero h1 em {
    font-style: normal;
    color: #69f0ae;
}

.hero-lead {
    font-size: 18px;
    line-height: 1.55;
    color: #c8e6c9;
    max-width: 520px;
    margin-bottom: 30px;
}

/* ---- Discord: the loudest thing in the hero ---- */

.hero-discord {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 16px 26px 16px 20px;
    border-radius: 14px;
    background: #5865f2;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 10px 30px rgba(88, 101, 242, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.hero-discord:hover,
.hero-discord:focus {
    background: #4752e0;
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 14px 36px rgba(88, 101, 242, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    outline: none;
}

/* soft pulsing halo so the eye lands here first */
.hero-discord:before {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 18px;
    border: 2px solid rgba(88, 101, 242, 0.55);
    animation: hero-halo 2.4s ease-out infinite;
    pointer-events: none;
}

@keyframes hero-halo {
    0% { opacity: 0.9; transform: scale(0.98); }
    70% { opacity: 0; transform: scale(1.08); }
    100% { opacity: 0; transform: scale(1.08); }
}

.hero-discord > i {
    font-size: 34px;
}

.hero-discord strong {
    display: block;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
}

.hero-discord small {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    opacity: 0.92;
    margin-top: 3px;
}

.hero-discord small em {
    font-style: normal;
}

.hero-discord small i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #3ba55d;
    box-shadow: 0 0 0 3px rgba(59, 165, 93, 0.3);
    font-style: normal;
}

.hero-links {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    margin-top: 22px;
    font-size: 15px;
}

.hero-links a {
    color: #b9f6ca;
    font-weight: 600;
}

.hero-links a:hover {
    color: #ffffff;
}

.hero-trust {
    margin-top: 28px;
    font-size: 13px;
    color: #81c784;
}

/* ---- The tour ("how XGame works" as a route across a map) ---- */

.tour {
    background: rgba(8, 26, 14, 0.82);
    border: 1px solid rgba(125, 220, 154, 0.22);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
    overflow: hidden;
    backdrop-filter: blur(2px);
}

.tour-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px 10px;
}

.tour-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #69f0ae;
}

.tour-toggle {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px;
    border: 1px solid rgba(125, 220, 154, 0.35);
    border-radius: 999px;
    background: transparent;
    color: #c8e6c9;
    font-size: 12px;
    cursor: pointer;
}

.tour-toggle:hover,
.tour-toggle:focus {
    border-color: #69f0ae;
    color: #ffffff;
    outline: none;
}

/* the map strip */
.tour-map {
    display: block;
    width: 100%;
    height: auto;
    background: url("/img/topo-a60aeb2681e2a0bedfdfe1dd18da1f00.svg") center / cover, #0d2a17;
    border-top: 1px solid rgba(125, 220, 154, 0.12);
    border-bottom: 1px solid rgba(125, 220, 154, 0.12);
}

.tour-map .route-base {
    fill: none;
    stroke: rgba(185, 246, 202, 0.35);
    stroke-width: 3;
    stroke-dasharray: 2 9;
    stroke-linecap: round;
}

.tour-map .route-done {
    fill: none;
    stroke: #69f0ae;
    stroke-width: 3.5;
    stroke-linecap: round;
}

.tour-map .pin circle.halo {
    fill: rgba(105, 240, 174, 0.12);
    stroke: rgba(105, 240, 174, 0.35);
}

.tour-map .pin circle.dot {
    fill: #0b2414;
    stroke: #81c784;
    stroke-width: 2.5;
}

.tour-map .pin text.num {
    fill: #c8e6c9;
    font: 700 12px "Segoe UI", Roboto, Arial, sans-serif;
    text-anchor: middle;
}

.tour-map .pin text.label {
    fill: #c8e6c9;
    font: 600 12px "Segoe UI", Roboto, Arial, sans-serif;
    text-anchor: middle;
}

.tour-map .pin.is-done circle.dot,
.tour-map .pin.is-active circle.dot {
    fill: #69f0ae;
    stroke: #69f0ae;
}

.tour-map .pin.is-done text.num,
.tour-map .pin.is-active text.num {
    fill: #0b2414;
}

.tour-map .pin.is-active text.label {
    fill: #ffffff;
}

.tour-map .pin {
    cursor: pointer;
}

.tour-map .marker {
    fill: #ffffff;
    stroke: #69f0ae;
    stroke-width: 3;
    filter: drop-shadow(0 0 6px rgba(105, 240, 174, 0.9));
}

/* the "screen" that shows what happens at each stop */
.tour-screen {
    position: relative;
    height: 300px;
    background: #081a0e;
}

.tour-scene {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.45s ease, transform 0.45s ease;
    pointer-events: none;
}

.tour-scene.is-active {
    opacity: 1;
    transform: none;
}

.tour-caption {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px 14px;
    min-height: 64px;
    border-top: 1px solid rgba(125, 220, 154, 0.12);
}

.tour-caption-num {
    flex: 0 0 32px;
    height: 32px;
    border-radius: 50%;
    background: #69f0ae;
    color: #0b2414;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tour-caption-text b {
    display: block;
    color: #ffffff;
    font-size: 15px;
}

.tour-caption-text small {
    color: #a5d6a7;
    font-size: 13px;
}

.tour-progress {
    height: 3px;
    background: rgba(125, 220, 154, 0.12);
}

.tour-progress i {
    display: block;
    height: 100%;
    width: 0;
    background: #69f0ae;
}

/* scene 1: mini sign-up card */
.mock-card {
    width: 250px;
    background: #ffffff;
    border-radius: 10px;
    border-top: 4px solid #007e33;
    padding: 18px 18px 16px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
    color: #212529;
}

.mock-card h5 {
    font-size: 17px;
    margin: 0 0 12px;
    font-weight: 500;
}

.mock-field {
    height: 30px;
    border: 1px solid #ced4da;
    border-radius: 5px;
    margin-bottom: 9px;
    padding: 0 10px;
    display: flex;
    align-items: center;
    font-size: 12px;
    color: #495057;
    overflow: hidden;
    white-space: nowrap;
}

.mock-field.is-typing:after {
    content: "";
    width: 1px;
    height: 14px;
    background: #007e33;
    margin-left: 2px;
    animation: tour-caret 0.8s steps(1) infinite;
}

@keyframes tour-caret {
    50% { opacity: 0; }
}

.mock-btn {
    height: 34px;
    border-radius: 5px;
    background: #007e33;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
}

.is-active .mock-btn.is-pressed {
    animation: tour-press 3.4s ease infinite;
}

@keyframes tour-press {
    0%, 70% { box-shadow: none; transform: none; }
    76% { box-shadow: 0 0 0 5px rgba(105, 240, 174, 0.55); transform: scale(0.97); }
    90%, 100% { box-shadow: none; transform: none; }
}

/* scene 2: tiers */
.mock-tiers {
    display: flex;
    gap: 12px;
    align-items: flex-end;
}

.mock-tier {
    width: 118px;
    background: #ffffff;
    border-radius: 8px;
    border-top: 4px solid #a46628;
    padding: 12px 11px;
    color: #212529;
    font-size: 12px;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.45);
}

.mock-tier.silver { border-top-color: #adb5bd; }
.mock-tier.gold { border-top-color: #ffc107; }

.mock-tier b {
    display: block;
    font-size: 11px;
    letter-spacing: 0.5px;
    color: #6c757d;
    margin-bottom: 6px;
}

.mock-tier .mock-feat {
    height: 6px;
    border-radius: 3px;
    background: #e9ecef;
    margin-bottom: 6px;
}

.mock-tier .mock-buy {
    margin-top: 10px;
    height: 24px;
    border-radius: 4px;
    background: #007e33;
}

.is-active .mock-tier.gold {
    animation: tour-pick 4s ease forwards;
}

@keyframes tour-pick {
    0%, 35% { transform: none; box-shadow: 0 10px 26px rgba(0, 0, 0, 0.45); }
    55%, 100% { transform: translateY(-10px); box-shadow: 0 0 0 3px #69f0ae, 0 16px 34px rgba(0, 0, 0, 0.5); }
}

.mock-pills {
    display: flex;
    gap: 6px;
    justify-content: center;
    margin-top: 14px;
}

.mock-pills i {
    font-style: normal;
    font-size: 11px;
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid rgba(125, 220, 154, 0.4);
    color: #c8e6c9;
}

/* scene 3: the real client screenshot with a moving highlight */
.mock-client {
    position: relative;
    height: 100%;
    max-height: 264px;
}

.mock-client img {
    height: 100%;
    width: auto;
    border-radius: 6px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
}

.mock-ring {
    position: absolute;
    border: 3px solid #69f0ae;
    border-radius: 8px;
    box-shadow: 0 0 0 4px rgba(105, 240, 174, 0.25), 0 0 22px rgba(105, 240, 174, 0.6);
    transition: all 0.6s ease;
}

.mock-ring.on-row {
    left: 2%;
    top: 58%;
    width: 96%;
    height: 15.5%;
}

.mock-ring.on-launch {
    left: 39%;
    top: 5%;
    width: 19%;
    height: 11%;
    animation: tour-click 1.2s ease 0.7s 2;
}

@keyframes tour-click {
    50% { transform: scale(0.9); }
}

/* scene 4: in game */
.mock-game {
    height: 100%;
    max-height: 264px;
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
}

/* ---- floating Discord button, shown once the hero CTA is scrolled away ---- */

.discord-float {
    position: fixed;
    right: 18px;
    bottom: 76px;
    z-index: 1040;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 16px 11px 13px;
    border-radius: 999px;
    background: #5865f2;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 22px rgba(88, 101, 242, 0.5);
    text-decoration: none;
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease, background 0.15s ease;
}

.discord-float.is-visible {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

.discord-float:hover,
.discord-float:focus {
    background: #4752e0;
    color: #fff;
    text-decoration: none;
}

.discord-float > i {
    font-size: 20px;
}

@media (max-width: 991px) {
    .hero {
        padding: 40px 0 44px;
    }

    .hero h1 {
        font-size: 34px;
    }

    .tour {
        margin-top: 36px;
    }
}

@media (max-width: 575px) {
    .hero h1 {
        font-size: 29px;
    }

    .hero-lead {
        font-size: 16px;
    }

    .hero-discord {
        display: flex;
        width: 100%;
    }

    .tour-screen {
        height: 230px;
    }

    /* the map scales to about half size on a phone, so draw its labels bigger to stay readable */
    .tour-map .pin text.label {
        font-size: 21px;
    }

    .tour-map .pin text.num {
        font-size: 14px;
    }

    .mock-client,
    .mock-game {
        max-height: 200px;
    }

    .mock-tier {
        width: 92px;
    }

    .discord-float {
        right: 12px;
        bottom: 64px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-discord:before,
    .mock-field.is-typing:after,
    .is-active .mock-btn.is-pressed,
    .mock-ring.on-launch {
        animation: none;
    }

    /* keep the "Gold is picked" end state, just without the lift animation */
    .is-active .mock-tier.gold {
        animation-duration: 0.01s;
    }

    .tour-scene,
    .mock-ring {
        transition: none;
    }
}
