:root {
    --bg: #08071a;
    --bg2: #120f2b;
    --ink: #f4f1ff;
    --soft: #c3bde0;
    --mute: #8b84ad;
    --n1: #a855f7;
    --n2: #fbbf24;
    --n3: #34d399;
    --panel: rgba(168,85,247,.055);
    --line: rgba(168,85,247,.10);
    --line2: rgba(168,85,247,.20);
    --g1: rgba(168,85,247,.5);
    --g2: rgba(251,191,36,.5);
    --disp: 'Anta',system-ui,sans-serif;
    --sans: 'Archivo',system-ui,sans-serif;
    --wrap: 1200px;
    --r: 20px;
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 17px;
    line-height: 1.66;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden
}

img {
    max-width: 100%;
    display: block
}

a {
    color: inherit
}

.wrap {
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 24px
}

/* ---------------------------------------------------------------- aurora */
.aurora {
    position: fixed;
    inset: -20%;
    z-index: 0;
    pointer-events: none;
    filter: blur(90px);
    opacity: .75
}

    .aurora i {
        position: absolute;
        display: block;
        border-radius: 50%;
        mix-blend-mode: screen
    }

        .aurora i:nth-child(1) {
            width: 46vw;
            height: 46vw;
            left: -6vw;
            top: -8vw;
            background: rgba(168,85,247,.30);
            animation: drift1 26s ease-in-out infinite alternate
        }

        .aurora i:nth-child(2) {
            width: 40vw;
            height: 40vw;
            right: -8vw;
            top: 2vw;
            background: rgba(251,191,36,.26);
            animation: drift2 32s ease-in-out infinite alternate
        }

        .aurora i:nth-child(3) {
            width: 52vw;
            height: 52vw;
            left: 22vw;
            top: 38vw;
            background: rgba(52,211,153,.20);
            animation: drift3 38s ease-in-out infinite alternate
        }

@keyframes drift1 {
    to {
        transform: translate3d(8vw,6vw,0) scale(1.15)
    }
}

@keyframes drift2 {
    to {
        transform: translate3d(-7vw,9vw,0) scale(1.1)
    }
}

@keyframes drift3 {
    to {
        transform: translate3d(5vw,-7vw,0) scale(.9)
    }
}

@media(prefers-reduced-motion:reduce) {
    .aurora i {
        animation: none
    }
}

.grid-overlay {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .25;
    background-image: linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
    background-size: 72px 72px;
    mask-image: radial-gradient(75% 60% at 50% 25%,#000 10%,transparent 80%);
    -webkit-mask-image: radial-gradient(75% 60% at 50% 25%,#000 10%,transparent 80%)
}

header, main, footer {
    position: relative;
    z-index: 1
}

/* ---------------------------------------------------------------- header */
.top {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(16px) saturate(140%);
    background: rgba(8,7,26,.72);
    border-bottom: 1px solid var(--line2)
}

    .top .wrap {
        display: flex;
        align-items: center;
        gap: 28px;
        height: 74px
    }

.logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    font-family: var(--disp);
    font-size: 19px;
    letter-spacing: .16em;
    text-transform: uppercase;
    white-space: nowrap
}

    .logo b {
        font-weight: 400
    }

    .logo i {
        font-style: normal;
        background: linear-gradient(92deg,var(--n1),var(--n2));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent
    }

.spark {
    width: 28px;
    height: 28px;
    flex: none;
    filter: drop-shadow(0 0 14px var(--g1))
}

.nav {
    margin-left: auto;
    display: flex;
    gap: 28px;
    font-size: 13.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--soft)
}

    .nav a {
        text-decoration: none;
        position: relative;
        padding: 8px 0;
        transition: .2s
    }

        .nav a::after {
            content: "";
            position: absolute;
            left: 0;
            right: 100%;
            bottom: 0;
            height: 1px;
            background: linear-gradient(90deg,var(--n1),var(--n2));
            transition: right .25s;
            box-shadow: 0 0 12px var(--g1)
        }

        .nav a:hover {
            color: var(--ink)
        }

            .nav a:hover::after {
                right: 0
            }

/* ---------------------------------------------------------------- buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: 999px;
    font-family: var(--disp);
    font-size: 13.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid transparent;
    transition: .24s;
    cursor: pointer
}

.btn-main {
    background: linear-gradient(100deg,var(--n1),var(--n2));
    color: #1a0b33;
    font-weight: 700;
    box-shadow: 0 18px 50px -16px var(--g1)
}

    .btn-main:hover {
        transform: translateY(-2px);
        box-shadow: 0 24px 64px -14px var(--g1)
    }

.btn-ghost {
    border-color: var(--line2);
    color: var(--ink);
    background: rgba(168,85,247,.05);
    backdrop-filter: blur(6px)
}

    .btn-ghost:hover {
        border-color: var(--n1);
        color: var(--n1)
    }

/* ---------------------------------------------------------------- hero */
.hero {
    padding: 92px 0 70px
}

.hero-in {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 54px;
    align-items: center
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--disp);
    font-size: 11.5px;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--n2);
    margin: 0 0 22px;
    padding: 8px 16px;
    border: 1px solid var(--line2);
    border-radius: 999px;
    background: var(--panel)
}

    .eyebrow::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--n2);
        box-shadow: 0 0 12px var(--g2)
    }

h1 {
    font-family: var(--disp);
    font-weight: 400;
    font-size: clamp(40px,5.4vw,66px);
    line-height: 1.03;
    margin: 0 0 22px;
    letter-spacing: -.015em
}

    h1 em {
        font-style: normal;
        background: linear-gradient(100deg,var(--n1) 10%,var(--n2) 55%,var(--n3));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent
    }

.lead {
    font-size: 18.5px;
    color: var(--soft);
    max-width: 56ch;
    margin: 0 0 32px
}

.cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap
}

/* the collage: three covers, tilted, the reason the page looks alive */
.collage {
    position: relative;
    height: 430px
}

    .collage figure {
        position: absolute;
        margin: 0;
        width: 62%;
        border-radius: 18px;
        overflow: hidden;
        border: 1px solid var(--line2);
        box-shadow: 0 34px 70px -28px rgba(168,85,247,.35);
        background: var(--bg2);
        transition: transform .4s
    }

        .collage figure img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            aspect-ratio: 16/10
        }

        .collage figure:nth-child(1) {
            left: 0;
            top: 4%;
            transform: rotate(-6deg)
        }

        .collage figure:nth-child(2) {
            right: 0;
            top: 22%;
            transform: rotate(5deg);
            z-index: 2
        }

        .collage figure:nth-child(3) {
            left: 14%;
            bottom: 0;
            transform: rotate(-2deg);
            z-index: 3;
            width: 58%
        }

    .collage:hover figure:nth-child(1) {
        transform: rotate(-8deg) translateY(-8px)
    }

    .collage:hover figure:nth-child(2) {
        transform: rotate(7deg) translateY(-10px)
    }

    .collage:hover figure:nth-child(3) {
        transform: rotate(-3deg) translateY(-6px)
    }

/* ---------------------------------------------------------------- stat band */
.band {
    border-block: 1px solid var(--line2);
    background: rgba(168,85,247,.045);
    margin-top: 26px
}

    .band .wrap {
        display: grid;
        grid-template-columns: repeat(4,1fr);
        gap: 24px;
        padding-block: 30px
    }

    .band b {
        display: block;
        font-family: var(--disp);
        font-size: 34px;
        line-height: 1.1;
        background: linear-gradient(100deg,var(--n1),var(--n2));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent
    }

    .band span {
        font-size: 13.5px;
        color: var(--mute);
        letter-spacing: .05em
    }

/* ---------------------------------------------------------------- marquee */
.marq {
    overflow: hidden;
    border-bottom: 1px solid var(--line2);
    padding: 14px 0;
    background: var(--panel)
}

    .marq div {
        display: flex;
        gap: 40px;
        white-space: nowrap;
        animation: slide 32s linear infinite;
        font-family: var(--disp);
        font-size: 12.5px;
        letter-spacing: .24em;
        text-transform: uppercase;
        color: var(--mute)
    }

    .marq span {
        display: inline-flex;
        align-items: center;
        gap: 40px
    }

        .marq span::after {
            content: "";
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: var(--n1)
        }

@keyframes slide {
    to {
        transform: translateX(-50%)
    }
}

@media(prefers-reduced-motion:reduce) {
    .marq div {
        animation: none
    }
}

/* ------------------------------------------------- second layout (body.v-b)
   Same components, rearranged: covers on the left as a straight staircase rather
   than a tilted scatter, stats as separate panels, the marquee above the band. */
.v-b .hero-in {
    grid-template-columns: .95fr 1.05fr
}

    .v-b .hero-in > div:first-child {
        order: 2
    }

.v-b .collage {
    order: 1;
    height: 460px
}

    .v-b .collage figure {
        width: 58%;
        transition: transform .4s,box-shadow .4s
    }

        .v-b .collage figure:nth-child(1) {
            left: 0;
            top: 0;
            transform: none
        }

        .v-b .collage figure:nth-child(2) {
            right: 0;
            top: 26%;
            transform: none
        }

        .v-b .collage figure:nth-child(3) {
            left: 9%;
            bottom: 0;
            transform: none;
            width: 58%
        }

    .v-b .collage:hover figure:nth-child(1),
    .v-b .collage:hover figure:nth-child(2),
    .v-b .collage:hover figure:nth-child(3) {
        transform: translateY(-9px)
    }

.v-b .band {
    border: 0;
    background: transparent;
    margin-top: 6px
}

    .v-b .band .wrap {
        gap: 16px;
        padding-block: 6px 36px
    }

    .v-b .band > .wrap > div {
        border: 1px solid var(--line2);
        border-radius: 16px;
        padding: 20px 22px;
        background: var(--panel)
    }

.v-b .marq {
    border-top: 1px solid var(--line2);
    border-bottom: 0
}

.v-b h1 {
    letter-spacing: -.03em
}

.v-b .eyebrow {
    border-radius: 6px
}

/* ---------------------------------------------------------------- sections */
section {
    padding: 74px 0
}

.sec-head {
    margin-bottom: 38px;
    max-width: 68ch
}

h2 {
    font-family: var(--disp);
    font-weight: 400;
    font-size: clamp(28px,3.6vw,42px);
    margin: 0 0 14px;
    line-height: 1.14
}

h3 {
    font-family: var(--disp);
    font-weight: 400;
    font-size: 21px;
    margin: 0 0 10px
}

.sec-head p {
    color: var(--soft);
    margin: 0;
    font-size: 17.5px
}

/* ---------------------------------------------------------------- chips */
.chips {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 28px
}

.chip {
    border: 1px solid var(--line2);
    background: var(--panel);
    color: var(--soft);
    border-radius: 999px;
    padding: 10px 20px;
    font-size: 13px;
    letter-spacing: .05em;
    cursor: pointer;
    transition: .2s;
    font-family: var(--sans)
}

    .chip:hover {
        color: var(--ink);
        border-color: var(--n1)
    }

    .chip[aria-pressed="true"] {
        background: linear-gradient(100deg,var(--n1),var(--n2));
        color: #1a0b33;
        border-color: transparent;
        font-weight: 600
    }

/* ---------------------------------------------------------------- cards */
.grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 24px
}

.card {
    position: relative;
    border-radius: var(--r);
    padding: 1px;
    background: var(--line2);
    transition: .28s
}

    .card::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: var(--r);
        padding: 1px;
        background: linear-gradient(140deg,var(--n1),transparent 42%,transparent 58%,var(--n2));
        -webkit-mask: linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        opacity: 0;
        transition: .28s;
        pointer-events: none;
        z-index: 2
    }

    .card:hover {
        transform: translateY(-7px)
    }

        .card:hover::before {
            opacity: 1
        }

.card-in {
    position: relative;
    z-index: 1;
    background: #120f2b;
    border-radius: calc(var(--r) - 1px);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column
}

.shot {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: var(--bg2)
}

    .shot img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: .55s
    }

.card:hover .shot img {
    transform: scale(1.07)
}

.shot::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg,transparent 45%,rgba(8,7,26,.9))
}

.tag {
    position: absolute;
    left: 14px;
    top: 14px;
    z-index: 2;
    font-family: var(--disp);
    font-size: 10.5px;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(8,7,26,.72);
    border: 1px solid var(--line2);
    color: var(--n3);
    backdrop-filter: blur(8px)
}

.num {
    position: absolute;
    right: 14px;
    top: 14px;
    z-index: 2;
    font-family: var(--disp);
    font-size: 12.5px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: rgba(8,7,26,.72);
    border: 1px solid var(--line2);
    color: var(--soft)
}

.card-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    flex: 1
}

    .card-body p {
        margin: 0;
        color: var(--soft);
        font-size: 15.5px
    }

.feats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

    .feats li {
        font-size: 12.5px;
        color: var(--mute);
        border: 1px solid var(--line);
        border-radius: 9px;
        padding: 6px 11px;
        background: var(--panel)
    }

.card-foot {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap
}

.play {
    flex: 1;
    position: relative;
    z-index: 3
}

.more {
    font-size: 12.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--mute);
    text-decoration: none;
    border-bottom: 1px solid var(--line2);
    padding-bottom: 3px;
    transition: .2s
}

    .more:hover {
        color: var(--n1);
        border-color: var(--n1)
    }

/* ---------------------------------------------------------------- columns, prose */
.cols {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 24px
}

.col {
    background: var(--panel);
    border: 1px solid var(--line2);
    border-radius: var(--r);
    padding: 28px;
    transition: .25s
}

    .col:hover {
        border-color: rgba(168,85,247,.45);
        transform: translateY(-4px)
    }

    .col .idx {
        font-family: var(--disp);
        font-size: 12.5px;
        letter-spacing: .22em;
        color: var(--n2);
        display: block;
        margin-bottom: 14px
    }

    .col p {
        margin: 0;
        color: var(--soft);
        font-size: 15.5px
    }

.prose-wide {
    max-width: 74ch
}

    .prose-wide p {
        color: var(--soft);
        margin: 0 0 19px
    }

        .prose-wide p:last-child {
            margin-bottom: 0
        }

.split {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 38px;
    align-items: start
}

.note {
    background: linear-gradient(150deg,rgba(168,85,247,.10),rgba(251,191,36,.06));
    border: 1px solid var(--line2);
    border-radius: var(--r);
    padding: 28px
}

    .note h3 {
        background: linear-gradient(100deg,var(--n1),var(--n2));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent
    }

    .note p {
        margin: 0;
        color: var(--soft)
    }

/* ---------------------------------------------------------------- table */
.scroller {
    overflow-x: auto;
    border: 1px solid var(--line2);
    border-radius: var(--r)
}

.tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 15.5px
}

    .tbl th {
        font-family: var(--disp);
        font-weight: 400;
        font-size: 12px;
        letter-spacing: .17em;
        text-transform: uppercase;
        color: var(--n3);
        text-align: left;
        padding: 18px 20px;
        background: var(--panel)
    }

    .tbl td {
        padding: 16px 20px;
        border-top: 1px solid var(--line);
        color: var(--soft)
    }

    .tbl tr:hover td {
        background: var(--panel);
        color: var(--ink)
    }

    .tbl td:first-child {
        color: var(--ink);
        font-weight: 600
    }

/* ---------------------------------------------------------------- faq */
.faq {
    display: grid;
    gap: 12px;
    max-width: 900px
}

details {
    background: var(--panel);
    border: 1px solid var(--line2);
    border-radius: 16px;
    padding: 20px 24px
}

    details[open] {
        border-color: rgba(168,85,247,.45)
    }

summary {
    cursor: pointer;
    font-family: var(--disp);
    font-size: 17px;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center
}

    summary::-webkit-details-marker {
        display: none
    }

    summary::after {
        content: "+";
        color: var(--n1);
        font-size: 22px;
        line-height: 1
    }

details[open] summary::after {
    content: "\2212"
}

details p {
    margin: 13px 0 0;
    color: var(--soft)
}

/* ---------------------------------------------------------------- game & service pages */
.gp {
    padding: 56px 0 24px
}

.crumb {
    font-size: 12.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--mute);
    margin-bottom: 24px;
    display: flex;
    gap: 10px
}

    .crumb a {
        text-decoration: none
    }

        .crumb a:hover {
            color: var(--n1)
        }

.gp-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 38px;
    align-items: start
}

.gp-shot {
    border-radius: var(--r);
    overflow: hidden;
    border: 1px solid var(--line2);
    box-shadow: 0 34px 80px -34px rgba(168,85,247,.35)
}

.panel {
    background: var(--panel);
    border: 1px solid var(--line2);
    border-radius: var(--r);
    padding: 28px
}

.kv {
    display: grid;
    gap: 15px;
    margin: 0
}

    .kv div {
        display: flex;
        justify-content: space-between;
        gap: 18px;
        border-bottom: 1px solid var(--line);
        padding-bottom: 13px
    }

        .kv div:last-child {
            border: 0;
            padding: 0
        }

    .kv dt {
        font-size: 12px;
        letter-spacing: .15em;
        text-transform: uppercase;
        color: var(--mute)
    }

    .kv dd {
        margin: 0;
        text-align: right;
        color: var(--ink);
        font-size: 15px
    }

.page {
    padding: 56px 0 24px
}

    .page .prose-wide h2 {
        margin-top: 38px
    }

    .page .prose-wide ul {
        color: var(--soft);
        padding-left: 20px
    }

    .page .prose-wide li {
        margin-bottom: 9px
    }

/* ---------------------------------------------------------------- footer */
footer {
    border-top: 1px solid var(--line2);
    background: rgba(168,85,247,.04);
    margin-top: 50px
}

.foot-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 36px;
    padding: 56px 24px 40px
}

.foot-brand .logo {
    margin-bottom: 18px
}

.foot-brand p {
    margin: 0 0 14px;
    color: var(--mute);
    font-size: 14.5px;
    max-width: 42ch
}

.foot-mail a {
    color: var(--n1);
    text-decoration: none;
    border-bottom: 1px solid var(--line2)
}

.foot-col h4 {
    font-family: var(--disp);
    font-weight: 400;
    font-size: 12.5px;
    letter-spacing: .17em;
    text-transform: uppercase;
    color: var(--n3);
    margin: 0 0 18px
}

.foot-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 11px
}

.foot-col a {
    color: var(--soft);
    text-decoration: none;
    font-size: 14.5px;
    transition: .2s
}

    .foot-col a:hover {
        color: var(--n1)
    }

.foot-bottom {
    border-top: 1px solid var(--line);
    padding: 20px 24px 46px;
    color: var(--mute);
    font-size: 13.5px
}

@media(max-width:1040px) {
    .hero-in {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .collage {
        height: 360px;
        max-width: 560px
    }

    .grid, .cols {
        grid-template-columns: repeat(2,1fr)
    }

    .foot-grid {
        grid-template-columns: 1fr 1fr
    }

    .split, .gp-grid {
        grid-template-columns: 1fr
    }
}

@media(max-width:680px) {
    body {
        font-size: 16px
    }

    .nav {
        display: none
    }

    .grid, .cols {
        grid-template-columns: 1fr
    }

    .band .wrap {
        grid-template-columns: 1fr 1fr;
        gap: 18px
    }

    .hero {
        padding: 62px 0 48px
    }

    .collage {
        height: 300px
    }

    .cta .btn {
        width: 100%
    }

    .foot-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 42px 24px 30px
    }
}
