/* ==========================================
   RESET
========================================== */

* {
    margin: 0;
    padding: 0;

    box-sizing: border-box;
}


[hidden] {

    display: none !important;
}


html,
body {
    width: 100%;
    min-height: 100%;

    background-color: #000000;
}


body {

    min-height: 100vh;

    font-family:
            "Inter",
            sans-serif;

    color: #ffffff;

    background:
            radial-gradient(
                    circle at 50% 40%,
                    #071a32 0%,
                    #02060c 38%,
                    #000000 75%
            );

    background-color: #000000;
    background-attachment: fixed;

    overflow: hidden;
}


/* ==========================================
   PARTICLES
========================================== */

#particles {

    position: fixed;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 1;

    pointer-events: none;
}


/* ==========================================
   MOUSE GLOW
========================================== */

#mouseGlow {

    position: fixed;

    width: 420px;
    height: 420px;

    left: 0;
    top: 0;

    border-radius: 50%;

    background:
            radial-gradient(
                    circle,
                    rgba(0, 132, 255, 0.14) 0%,
                    rgba(0, 90, 255, 0.07) 30%,
                    transparent 70%
            );

    transform:
            translate(
                    -50%,
                    -50%
            );

    pointer-events: none;

    z-index: 2;

    opacity: 0;

    transition:
            opacity 0.3s ease;
}


/* ==========================================
   BACKGROUND GLOW
========================================== */

.background-glow {

    position: fixed;

    width: 500px;
    height: 500px;

    border-radius: 50%;

    filter:
            blur(160px);

    opacity: 0.14;

    pointer-events: none;

    z-index: 0;
}


.glow-blue {

    left: 12%;
    top: 20%;

    background:
            #0077ff;
}


.glow-red {

    right: 12%;
    bottom: 8%;

    background:
            #ff0048;
}


/* ==========================================
   DECORATIVE BACKGROUND DOTS
========================================== */

.background-dots {

    position: fixed;

    inset: 0;

    z-index: 1;

    pointer-events: none;
}


.background-dot {

    position: absolute;

    width: 4px;
    height: 4px;

    border-radius: 50%;

    background: #6db9ff;

    box-shadow:
            0 0 12px
            rgba(55, 157, 255, 0.85);

    opacity: 0.58;

    animation:
            dotPulse 4.8s ease-in-out infinite;
}


.dot-1 { left: 9%; top: 19%; animation-delay: -1.2s; }
.dot-2 { left: 21%; top: 76%; animation-delay: -3.6s; }
.dot-3 { left: 34%; top: 13%; animation-delay: -2.4s; }
.dot-4 { left: 68%; top: 18%; animation-delay: -4.2s; }
.dot-5 { left: 82%; top: 37%; animation-delay: -0.8s; }
.dot-6 { left: 91%; top: 73%; animation-delay: -2.8s; }
.dot-7 { left: 14%; top: 54%; animation-delay: -4.6s; }
.dot-8 { left: 77%; top: 84%; animation-delay: -1.9s; }
.dot-9 { left: 47%; top: 88%; animation-delay: -3.1s; }
.dot-10 { left: 57%; top: 8%; animation-delay: -0.4s; }
.dot-11 { left: 5%; top: 88%; animation-delay: -2.1s; }
.dot-12 { left: 27%; top: 32%; animation-delay: -4.0s; }
.dot-13 { left: 41%; top: 66%; animation-delay: -1.6s; }
.dot-14 { left: 63%; top: 47%; animation-delay: -3.4s; }
.dot-15 { left: 73%; top: 9%; animation-delay: -0.6s; }
.dot-16 { left: 96%; top: 25%; animation-delay: -2.9s; }
.dot-17 { left: 88%; top: 91%; animation-delay: -4.4s; }
.dot-18 { left: 3%; top: 42%; animation-delay: -1.0s; }
.dot-19 { left: 17%; top: 7%; animation-delay: -2.6s; }
.dot-20 { left: 30%; top: 91%; animation-delay: -0.3s; }
.dot-21 { left: 39%; top: 38%; animation-delay: -4.8s; }
.dot-22 { left: 52%; top: 25%; animation-delay: -1.7s; }
.dot-23 { left: 61%; top: 78%; animation-delay: -3.8s; }
.dot-24 { left: 71%; top: 62%; animation-delay: -0.9s; }
.dot-25 { left: 85%; top: 15%; animation-delay: -2.3s; }
.dot-26 { left: 94%; top: 54%; animation-delay: -4.1s; }
.dot-27 { left: 11%; top: 68%; animation-delay: -1.4s; }
.dot-28 { left: 25%; top: 47%; animation-delay: -3.2s; }
.dot-29 { left: 45%; top: 5%; animation-delay: -0.7s; }
.dot-30 { left: 56%; top: 94%; animation-delay: -2.0s; }
.dot-31 { left: 66%; top: 34%; animation-delay: -4.5s; }
.dot-32 { left: 79%; top: 52%; animation-delay: -1.1s; }
.dot-33 { left: 89%; top: 6%; animation-delay: -3.7s; }
.dot-34 { left: 7%; top: 31%; animation-delay: -2.7s; }
.dot-35 { left: 36%; top: 57%; animation-delay: -4.0s; }
.dot-36 { left: 74%; top: 96%; animation-delay: -0.5s; }


@keyframes dotPulse {

    0%,
    100% {
        opacity: 0.24;
        transform: scale(0.82);
    }

    50% {
        opacity: 0.82;
        transform: scale(1.18);
    }

}


/* ==========================================
   MINI GAMES
========================================== */

.game-launcher {

    position: fixed;

    top: 18px;
    left: 18px;

    z-index: 40;

    width: 44px;
    height: 44px;

    display: flex;

    justify-content: center;
    align-items: center;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.34
            );

    border-radius: 14px;

    background:
            rgba(
                    5,
                    17,
                    31,
                    0.88
            );

    color:
            #55b5ff;

    font-size: 18px;

    cursor: pointer;

    box-shadow:
            0 8px 24px
            rgba(
                    0,
                    0,
                    0,
                    0.22
            );

    backdrop-filter:
            blur(12px);

    -webkit-backdrop-filter:
            blur(12px);

    transition:
            transform
            0.25s ease,
            color
            0.25s ease,
            background
            0.25s ease,
            box-shadow
            0.25s ease;
}


.game-launcher:hover,
.game-launcher:focus-visible {

    transform:
            translateY(-2px)
            scale(1.04);

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.22
            );

    color:
            #ffffff;

    outline: none;

    box-shadow:
            0 0 24px
            rgba(
                    0,
                    140,
                    255,
                    0.25
            );
}


.admin-launcher {

    position: fixed;

    top: 18px;
    right: 18px;
    left: auto;

    z-index: 50;

    display: flex;

    visibility: visible;

    opacity: 1;
}


.game-panel {

    position: fixed;

    top: 74px;
    left: 18px;

    z-index: 39;

    width: 360px;
    max-width: calc(100vw - 36px);
    max-height: calc(100vh - 94px);

    overflow-y: auto;

    padding: 18px;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.24
            );

    border-radius: 20px;

    background:
            linear-gradient(
                    145deg,
                    rgba(7, 22, 40, 0.97),
                    rgba(4, 10, 20, 0.97)
            );

    box-shadow:
            0 18px 50px
            rgba(
                    0,
                    0,
                    0,
                    0.46
            );

    backdrop-filter:
            blur(16px);

    -webkit-backdrop-filter:
            blur(16px);
}


.game-panel-header,
.game-footer-row {

    display: flex;

    justify-content: space-between;
    align-items: center;
}


.game-kicker {

    color:
            #45aaff;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}


.game-panel h2 {

    margin-top: 3px;

    color:
            #edf7ff;

    font-size: 20px;
    font-weight: 800;
}


.game-close {

    width: 30px;
    height: 30px;

    border: 0;

    border-radius: 9px;

    background:
            rgba(
                    255,
                    255,
                    255,
                    0.07
            );

    color:
            #9eb3c8;

    font-size: 21px;
    line-height: 1;

    cursor: pointer;
}


.game-close:hover,
.game-close:focus-visible {

    background:
            rgba(
                    255,
                    0,
                    72,
                    0.18
            );

    color:
            #ffffff;

    outline: none;
}


.game-tabs {

    margin-top: 16px;

    padding: 4px;

    display: flex;

    flex-wrap: wrap;

    gap: 4px;

    border-radius: 12px;

    background:
            rgba(
                    0,
                    0,
                    0,
                    0.22
            );
}


.game-tab,
.game-action {

    border: 1px solid transparent;

    border-radius: 9px;

    color:
            #8ca6bd;

    font-family: inherit;

    font-size: 11px;
    font-weight: 700;

    cursor: pointer;
}


.game-tab {

    flex: 1 1 calc(50% - 4px);

    padding: 8px 5px;

    background: transparent;
}


.game-tab.active,
.game-tab:hover,
.game-tab:focus-visible {

    border-color:
            rgba(
                    0,
                    140,
                    255,
                    0.24
            );

    background:
            rgba(
                    0,
                    132,
                    255,
                    0.16
            );

    color:
            #e8f5ff;

    outline: none;
}


.game-description {

    margin-top: 14px;

    color:
            #94a9bd;

    font-size: 11px;
}


.catch-arena {

    position: relative;

    height: 150px;

    margin-top: 10px;

    overflow: hidden;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.16
            );

    border-radius: 14px;

    background:
            radial-gradient(
                    circle at 50% 50%,
                    rgba(0, 132, 255, 0.10),
                    rgba(0, 0, 0, 0.18)
            );
}


.catch-hint {

    position: absolute;

    inset: 0;

    display: grid;

    place-items: center;

    color:
            #6e879d;

    font-size: 11px;
}


.catch-target {

    position: absolute;

    width: 27px;
    height: 27px;

    padding: 0;

    border: 0;

    border-radius: 50%;

    background:
            #1ed760;

    box-shadow:
            0 0 18px
            rgba(
                    30,
                    215,
                    96,
                    0.80
            );

    cursor: crosshair;
}


.game-footer-row {

    margin-top: 12px;

    gap: 10px;
}


.game-score {

    min-width: 0;

    color:
            #a8bdd0;

    font-size: 11px;
    font-weight: 600;
}


.game-action {

    padding: 8px 11px;

    background:
            rgba(
                    0,
                    132,
                    255,
                    0.16
            );

    border-color:
            rgba(
                    0,
                    140,
                    255,
                    0.26
            );

    color:
            #bfe2ff;
}


.game-action:hover,
.game-action:focus-visible {

    background:
            rgba(
                    0,
                    140,
                    255,
                    0.28
            );

    border-color:
            rgba(
                    0,
                    160,
                    255,
                    0.55
            );

    color:
            #ffffff;

    outline: none;
}


.tic-board {

    width: 174px;

    margin: 14px auto 0;

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 6px;
}


.tic-cell {

    aspect-ratio: 1;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.22
            );

    border-radius: 10px;

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.08
            );

    color:
            #55b5ff;

    font-size: 22px;
    font-weight: 800;

    cursor: pointer;
}


.tic-cell:hover,
.tic-cell:focus-visible {

    border-color:
            rgba(
                    0,
                    160,
                    255,
                    0.62
            );

    background:
            rgba(
                    0,
                    140,
                    255,
                    0.18
            );

    outline: none;
}


.tic-cell[data-value="O"] {

    color:
            #ff5a84;
}


.reaction-arena {

    position: relative;

    width: 100%;
    height: 150px;

    margin-top: 10px;

    overflow: hidden;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.16
            );

    border-radius: 14px;

    background:
            radial-gradient(
                    circle at 50% 50%,
                    rgba(0, 132, 255, 0.10),
                    rgba(0, 0, 0, 0.18)
            );

    color: #8ca6bd;

    font-family: inherit;

    cursor: pointer;
}


.reaction-arena.is-ready {

    background:
            linear-gradient(
                    135deg,
                    rgba(30, 215, 96, 0.78),
                    rgba(0, 160, 104, 0.92)
            );

    color: #ffffff;
}


.reaction-arena.is-false-start {

    background:
            linear-gradient(
                    135deg,
                    rgba(255, 72, 110, 0.72),
                    rgba(120, 18, 55, 0.92)
            );

    color: #ffffff;
}


.reaction-hint,
.reaction-target {

    position: absolute;

    inset: 0;

    display: grid;

    place-items: center;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
}


.reaction-target {

    color: #ffffff;

    text-shadow:
            0 1px 10px
            rgba(
                    0,
                    0,
                    0,
                    0.24
            );
}


.memory-board {

    width: 190px;

    margin: 10px auto 0;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 6px;
}


.memory-card {

    aspect-ratio: 1;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.22
            );

    border-radius: 9px;

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.08
            );

    color: transparent;

    font-size: 20px;

    cursor: pointer;
}


.memory-card:hover,
.memory-card:focus-visible {

    border-color:
            rgba(
                    0,
                    160,
                    255,
                    0.62
            );

    background:
            rgba(
                    0,
                    140,
                    255,
                    0.18
            );

    outline: none;
}


.memory-card.is-flipped,
.memory-card.is-matched {

    background:
            rgba(
                    0,
                    140,
                    255,
                    0.20
            );

    color: #d9efff;
}


.memory-card.is-matched {

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.55
            );

    color: #7affad;
}


.arcade-leaderboard {

    margin-top: 18px;

    padding-top: 14px;

    border-top: 1px solid
            rgba(
                    255,
                    255,
                    255,
                    0.08
            );
}


.leaderboard-heading {

    display: flex;

    justify-content: space-between;
    align-items: end;

    gap: 10px;
}


.arcade-leaderboard h3 {

    margin-top: 3px;

    color: #edf7ff;

    font-size: 16px;
}


.leaderboard-name input {

    width: 94px;

    padding: 6px 8px;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.24
            );

    border-radius: 8px;

    background: rgba(0, 0, 0, 0.24);

    color: #dff2ff;

    font: 600 10px inherit;
}


.leaderboard-name input:focus {

    border-color: #39aaff;

    outline: none;
}


.leaderboard-list {

    margin-top: 9px;

    display: grid;

    gap: 4px;

    list-style: none;
}


.leaderboard-player {

    margin-top: 8px;

    color: #79bdf1;

    font-size: 10px;
    font-weight: 600;
}


.leaderboard-empty,
.leaderboard-row {

    color: #91a7bb;

    font-size: 10px;
}


.leaderboard-row {

    display: grid;

    grid-template-columns: 22px minmax(0, 1fr) auto;

    align-items: center;

    gap: 6px;

    padding: 5px 7px;

    border-radius: 7px;

    background: rgba(255, 255, 255, 0.035);
}


.leaderboard-row.is-you {

    background: rgba(0, 132, 255, 0.14);

    color: #dff2ff;
}


.leaderboard-rank {

    color: #51b5ff;

    font-weight: 800;
}


.leaderboard-game {

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
}


.leaderboard-value {

    color: #bfe2ff;

    font-weight: 700;
}


.sr-only {

    position: absolute;

    width: 1px;
    height: 1px;

    padding: 0;
    margin: -1px;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

    white-space: nowrap;

    border: 0;
}


/* ==========================================
   MAIN
========================================== */

main {

    position: relative;

    z-index: 5;

    min-height: 100vh;

    display: flex;

    justify-content: center;
    align-items: center;

    padding: 25px;
}


/* ==========================================
   PROFILE CARD
========================================== */

.profile-card {

    position: relative;

    width: 450px;

    padding:
            42px
            35px
            30px;

    text-align: center;

    border-radius: 30px;

    background:
            rgba(
                    4,
                    10,
                    20,
                    0.58
            );

    border:
            1px solid
            rgba(
                    0,
                    132,
                    255,
                    0.18
            );

    backdrop-filter:
            blur(18px);

    -webkit-backdrop-filter:
            blur(18px);

    box-shadow:
            0 0 80px
            rgba(
                    0,
                    119,
                    255,
                    0.10
            ),
            inset
            0 0 40px
            rgba(
                    255,
                    255,
                    255,
                    0.015
            );

    overflow: visible;
}


/* CARD HOVER */

.profile-card::before {

    content: "";

    position: absolute;

    inset: -1px;

    border-radius: inherit;

    background:
            linear-gradient(
                    120deg,
                    transparent 20%,
                    rgba(0, 132, 255, 0.18),
                    transparent 70%
            );

    opacity: 0;

    pointer-events: none;

    transition:
            opacity 0.35s ease;
}


.profile-card:hover::before {

    opacity: 1;
}


.profile-card::after {

    content: "";

    position: absolute;

    inset: 0;

    border-radius: inherit;

    background:
            linear-gradient(
                    110deg,
                    transparent 28%,
                    rgba(255, 255, 255, 0.16) 45%,
                    transparent 62%
            );

    background-size: 220% 100%;

    opacity: 0;

    pointer-events: none;

    animation:
            cardFlash
            1.25s
            ease-out
            1.05s
            both;
}


@keyframes cardFlash {

    0% {

        opacity: 0;

        background-position: 120% 0;
    }

    22% {

        opacity: 0.85;
    }

    70%,
    100% {

        opacity: 0;

        background-position: -80% 0;
    }

}


/* ==========================================
   INTRO ANIMATION
========================================== */

.intro-item {

    opacity: 0;

    transform:
            translateY(18px)
            scale(0.98);

    animation:
            introFade
            0.75s
            cubic-bezier(
                    0.22,
                    1,
                    0.36,
                    1
            )
            forwards;
}


.intro-1 {
    animation-delay: 0.10s;
}


.intro-2 {
    animation-delay: 0.20s;
}


.intro-3 {
    animation-delay: 0.30s;
}


.intro-4 {
    animation-delay: 0.40s;
}


.intro-5 {
    animation-delay: 0.50s;
}


.intro-6 {
    animation-delay: 0.65s;
}


@keyframes introFade {

    from {

        opacity: 0;

        transform:
                translateY(18px)
                scale(0.98);

    }

    to {

        opacity: 1;

        transform:
                translateY(0)
                scale(1);

    }

}


/* ==========================================
   PROFILE IMAGE
========================================== */

.avatar-wrapper {

    width: 125px;
    height: 125px;

    margin:
            0
            auto;

    padding: 4px;

    border-radius: 50%;

    background:
            linear-gradient(
                    135deg,
                    #008cff,
                    #006aff,
                    #ff004c
            );

    box-shadow:
            0 0 32px
            rgba(
                    0,
                    119,
                    255,
                    0.35
            ),
            0 0 30px
            rgba(
                    255,
                    0,
                    80,
                    0.15
            );

    animation:
            avatarGlow
            4s
            ease-in-out
            infinite;
}


@keyframes avatarGlow {

    0%,
    100% {

        box-shadow:
                0 0 28px
                rgba(
                        0,
                        119,
                        255,
                        0.28
                );

    }

    50% {

        box-shadow:
                0 0 45px
                rgba(
                        0,
                        132,
                        255,
                        0.45
                ),
                0 0 35px
                rgba(
                        255,
                        0,
                        72,
                        0.18
                );

    }

}


.avatar {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    border-radius: 50%;

    background:
            #02040a;
}


/* ==========================================
   NAME
========================================== */

h1 {

    margin-top: 22px;

    font-size: 38px;

    font-weight: 800;

    letter-spacing: -1px;

    background:
            linear-gradient(
                    90deg,
                    #007bff,
                    #00a2ff,
                    #ffffff
            );

    background-clip: text;

    -webkit-background-clip: text;

    -webkit-text-fill-color:
            transparent;

    filter:
            drop-shadow(
                    0 0 15px
                    rgba(
                            0,
                            136,
                            255,
                            0.30
                    )
            );
}


/* ==========================================
   TYPEWRITER
========================================== */

.typewriter-wrapper {

    margin-top: 11px;

    min-height: 22px;

    display: flex;

    justify-content: center;
    align-items: center;

    color:
            #aebdcd;

    font-size:
            15px;

    font-weight:
            500;
}


#typewriter {

    color:
            #b9c7d6;
}


.typewriter-cursor {

    margin-left: 3px;

    color:
            #008cff;

    font-weight:
            700;

    animation:
            cursorBlink
            0.8s
            infinite;
}


@keyframes cursorBlink {

    0%,
    49% {

        opacity: 1;

    }

    50%,
    100% {

        opacity: 0;

    }

}


/* ==========================================
   LOCATION
========================================== */

.location {

    margin-top: 13px;

    color:
            #6dafff;

    font-size:
            14px;
}


.location i {

    margin-right:
            6px;
}


/* ==========================================
   DISCORD CARD
========================================== */

.discord-card {

    width: 100%;

    min-height: 84px;

    margin-top:
            27px;

    padding:
            14px
            16px;

    display: flex;

    align-items: center;

    gap: 14px;

    text-align: left;

    border-radius:
            18px;

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.065
            );

    border:
            1px solid
            rgba(
                    0,
                    132,
                    255,
                    0.25
            );

    transition:
            transform 0.25s ease,
            border-color 0.25s ease,
            box-shadow 0.25s ease;
}


.discord-card:hover {

    transform:
            translateY(-3px);

    border-color:
            rgba(
                    0,
                    132,
                    255,
                    0.58
            );

    box-shadow:
            0 0 30px
            rgba(
                    0,
                    119,
                    255,
                    0.13
            );
}


/* ==========================================
   DISCORD AVATAR
========================================== */

.discord-avatar-container {

    position: relative;

    flex-shrink: 0;
}


.discord-avatar {

    width: 56px;
    height: 56px;

    display: block;

    object-fit: cover;

    border-radius: 50%;

    background:
            #050b13;

    border:
            2px solid
            rgba(
                    0,
                    132,
                    255,
                    0.24
            );
}


/* ==========================================
   STATUS DOT
========================================== */

.discord-dot {

    position: absolute;

    right: -1px;
    bottom: -1px;

    width: 16px;
    height: 16px;

    border-radius: 50%;

    border:
            3px solid
            #06101e;

    transition:
            background
            0.3s ease;
}


.discord-dot.online {

    background:
            #23a55a;
}


.discord-dot.idle {

    background:
            #f0b232;
}


.discord-dot.dnd {

    background:
            #f23f43;
}


.discord-dot.offline {

    background:
            #80848e;
}


/* ==========================================
   DISCORD INFO
========================================== */

.discord-info {

    flex: 1;

    min-width: 0;
}


.discord-header {

    display: flex;

    align-items: center;

    gap: 9px;
}


.discord-name {

    font-size:
            15px;

    font-weight:
            700;

    color:
            #f4f8ff;

    white-space:
            nowrap;

    overflow:
            hidden;

    text-overflow:
            ellipsis;
}


.discord-status {

    padding:
            3px
            7px;

    border-radius:
            20px;

    font-size:
            11px;

    color:
            #69adff;

    background:
            rgba(
                    0,
                    132,
                    255,
                    0.10
            );

    background-size:
            200%
            100%;

    background-position:
            0
            50%;

    transition:
            background-position
            0.65s
            ease,
            filter
            0.35s
            ease;
}


.about-me {

    max-width: 390px;

    margin: 16px auto 0;

    color: #9eafc0;

    font-size: 14px;

    line-height: 1.6;

    text-align: center;
}


h1:hover {

    background-position:
            100%
            50%;

    filter:
            drop-shadow(
                    0 0 22px
                    rgba(
                            0,
                            151,
                            255,
                            0.50
                    )
            );
}


/* ==========================================
   TECHNOLOGY BADGES
========================================== */

.tech-badges {

    margin-top: 12px;

    display: flex;

    justify-content: center;

    align-items: center;

    gap: 6px;

    flex-wrap: wrap;
}


.tech-badges span {

    padding: 5px 8px;

    border: 1px solid
            rgba(
                    0,
                    140,
                    255,
                    0.20
            );

    border-radius: 999px;

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.08
            );

    color:
            #8fb9e4;

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.15px;
}


.tech-badges span:hover {

    border-color:
            rgba(
                    0,
                    151,
                    255,
                    0.55
            );

    background:
            rgba(
                    0,
                    132,
                    255,
                    0.16
            );

    color:
            #dceeff;
}


.discord-status.online {

    color:
            #66e39a;

    background:
            rgba(
                    35,
                    165,
                    90,
                    0.14
            );
}


.discord-status.idle {

    color:
            #f5c766;

    background:
            rgba(
                    240,
                    178,
                    50,
                    0.14
            );
}


.discord-status.dnd {

    color:
            #ff8588;

    background:
            rgba(
                    242,
                    63,
                    67,
                    0.14
            );
}


.discord-status.offline {

    color:
            #a9b0bd;

    background:
            rgba(
                    128,
                    132,
                    142,
                    0.14
            );
}


.discord-activity {

    margin-top:
            7px;

    color:
            #8494a6;

    font-size:
            13px;

    white-space:
            nowrap;

    overflow:
            hidden;

    text-overflow:
            ellipsis;
}


.discord-custom-status {

    display: inline-flex;
    align-items: center;

    max-width: 100%;

    margin-top: 8px;
    padding: 4px 8px;

    border: 1px solid
            rgba(190, 112, 255, 0.22);

    border-radius: 999px;

    color: #d9b5ff;

    background:
            rgba(139, 74, 185, 0.14);

    font-size: 11px;
    line-height: 1.2;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* ==========================================
   PERSONAL DISCORD CARD THEME
========================================== */

.discord-card {

    background:
            rgba(55, 4, 18, 0.9);

    border-color:
            rgba(181, 28, 71, 0.42);
}


.discord-card:hover {

    border-color:
            rgba(218, 43, 91, 0.72);

    box-shadow:
            0 0 30px
            rgba(171, 17, 59, 0.22);
}


.discord-avatar {

    border-color:
            rgba(218, 43, 91, 0.42);
}


.discord-dot {

    border-color:
            #260611;
}


.discord-name {

    color:
            #168cff;
}


.discord-status {

    color:
            #ff9bad;

    background:
            rgba(139, 20, 55, 0.38);
}


.discord-status.online {

    color:
            #a6f4c2;

    background:
            rgba(40, 123, 77, 0.34);
}


.discord-status.idle {

    color:
            #ffe19a;

    background:
            rgba(135, 92, 20, 0.36);
}


.discord-status.dnd {

    color:
            #ff9ba9;

    background:
            rgba(139, 20, 55, 0.48);
}


.discord-status.offline {

    color:
            #c6aeb8;

    background:
            rgba(84, 53, 63, 0.42);
}


.discord-activity-line {

    display: flex;
    align-items: baseline;
    gap: 4px;

    min-width: 0;

    margin-top: 7px;
}


.discord-activity-label {

    flex-shrink: 0;

    color:
            #168cff;

    font-size:
            12px;

    font-weight:
            700;
}


.discord-activity {

    min-width: 0;
    margin-top: 0;

    color:
            #a18abf;

    font-size:
            12px;
}


.discord-activity-subtext {

    margin-top: 2px;

    color:
            #a18abf;

    font-size:
            11px;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.discord-activity-image {

    flex-shrink: 0;

    width: 72px;
    height: 56px;

    object-fit: cover;

    border-radius: 10px;

    background:
            #12040a;

    border: 1px solid
            rgba(218, 43, 91, 0.28);
}


/* ==========================================
   DISCORD STATUS ICONS
========================================== */

.discord-dot {

    display: block;

    width: 12px;
    height: 12px;

    border: 0;

    overflow: visible;
}


.discord-dot.online {

    width: 10px;
    height: 10px;

    background:
            #3ba55d;
}


.discord-dot.idle {

    width: 12px;
    height: 12px;

    overflow: hidden;

    background:
            #faa61a;
}


.discord-dot.idle::after {

    content: "";

    position: absolute;

    top: -3px;
    left: 4px;

    width: 11px;
    height: 11px;

    border-radius: 50%;

    background:
            #260611;
}


.discord-dot.dnd {

    width: 12px;
    height: 12px;

    background:
            #ed4245;
}


.discord-dot.dnd::after {

    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 7px;
    height: 2px;

    border-radius: 2px;

    background:
            #260611;

    transform:
            translate(-50%, -50%);
}


.discord-dot.offline {

    width: 11px;
    height: 11px;

    border: 3px solid
            #80848e;

    background:
            transparent;
}


.discord-dot.online {

    animation:
            onlinePulse
            1.8s
            ease-in-out
            infinite;
}


@keyframes onlinePulse {

    0%,
    100% {

        box-shadow:
                0 0 0
                rgba(
                        67,
                        214,
                        112,
                        0
                );
    }

    50% {

        box-shadow:
                0 0 10px
                rgba(
                        67,
                        214,
                        112,
                        0.75
                );
    }

}


/* ==========================================
   SPOTIFY LIVE CARD
========================================== */

.spotify-live-card {

    width: 100%;

    color: inherit;
    text-decoration: none;

    max-height: 0;

    margin-top: 0;

    padding:
            0
            15px;

    display: flex;

    align-items: center;

    gap: 14px;

    text-align: left;

    border-radius:
            18px;

    background:
            rgba(
                    30,
                    215,
                    96,
                    0.07
            );

    border:
            1px solid
            rgba(
                    30,
                    215,
                    96,
                    0
            );

    opacity: 0;

    overflow: hidden;

    transform:
            translateY(-5px);

    transition:
            all
            0.4s
            ease;
}


.spotify-live-card.active {

    max-height:
            150px;

    margin-top:
            12px;

    padding:
            14px
            15px;

    opacity: 1;

    transform:
            translateY(0);

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.24
            );
}


.spotify-live-card:hover {

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.50
            );

    box-shadow:
            0 0 25px
            rgba(
                    30,
                    215,
                    96,
                    0.08
            );
}


.spotify-cover {

    width: 62px;
    height: 62px;

    flex-shrink: 0;

    object-fit: cover;

    border-radius:
            8px;

    background:
            #111111;

    box-shadow:
            0 4px 18px
            rgba(
                    0,
                    0,
                    0,
                    0.35
            );
}


.spotify-info {

    flex: 1;

    min-width: 0;
}


.spotify-header {

    display: flex;

    align-items: center;

    gap: 6px;

    color:
            #1ed760;

    font-size:
            11px;

    font-weight:
            600;
}


.spotify-song {

    margin-top:
            5px;

    color:
            #ffffff;

    font-size:
            14px;

    font-weight:
            700;

    white-space:
            nowrap;

    overflow:
            hidden;

    text-overflow:
            ellipsis;
}


.spotify-artist {

    margin-top:
            3px;

    color:
            #8e9aab;

    font-size:
            12px;

    white-space:
            nowrap;

    overflow:
            hidden;

    text-overflow:
            ellipsis;
}


/* SPOTIFY PROGRESS */

.spotify-progress-wrapper {

    margin-top:
            8px;
}


.spotify-progress-bar {

    width: 100%;
    height: 4px;

    overflow:
            hidden;

    border-radius:
            4px;

    background:
            rgba(
                    255,
                    255,
                    255,
                    0.12
            );
}


.spotify-progress {

    width: 0%;

    height: 100%;

    border-radius:
            inherit;

    background:
            #1ed760;

    transition:
            width
            1s
            linear;
}


.spotify-time {

    margin-top:
            3px;

    display:
            flex;

    justify-content:
            space-between;

    color:
            #687586;

    font-size:
            9px;
}


/* ==========================================
   LAZY SPOTIFY EMBED
========================================== */

.spotify-embed-shell {

    width: 100%;

    margin-top: 22px;

    padding: 6px;

    overflow: hidden;

    border-radius: 18px;

    background:
            linear-gradient(
                    135deg,
                    rgba(30, 215, 96, 0.20),
                    rgba(0, 132, 255, 0.16)
            );

    box-shadow:
            0 10px 30px
            rgba(
                    0,
                    0,
                    0,
                    0.34
            );
}


.spotify-embed-host {

    width: 100%;

    overflow: hidden;

    border-radius: 12px;

    background:
            #191414;
}


.spotify-embed-host iframe {

    width: 100%;

    display: block;

    border: 0;
}


/* ==========================================
   MUSIC TOGGLE
========================================== */

.music-player {

    position: fixed;

    right: 24px;
    bottom: 24px;

    z-index: 20;

    width: 226px;

    max-width: calc(100vw - 30px);

    padding: 9px 14px 9px 9px;

    display: flex;

    align-items: center;

    gap: 11px;

    border: 1px solid
            rgba(
                    0,
                    132,
                    255,
                    0.22
            );

    border-radius: 18px;

    background:
            linear-gradient(
                    135deg,
                    rgba(9, 24, 43, 0.96),
                    rgba(5, 13, 25, 0.94)
            );

    box-shadow:
            0 8px 26px
            rgba(
                    0,
                    0,
                    0,
                    0.28
            );

    backdrop-filter:
            blur(14px);

    -webkit-backdrop-filter:
            blur(14px);

    transition:
            border-color
            0.25s ease,
            box-shadow
            0.25s ease;
}


.music-player.active {

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.55
            );

    box-shadow:
            0 8px 30px
            rgba(
                    30,
                    215,
                    96,
                    0.16
            );
}


.music-player.active .music-status {

    color:
            #9bf4b7;
}


.music-toggle {

    width: 42px;
    height: 42px;

    padding: 0;

    display: flex;

    justify-content: center;
    align-items: center;

    flex-shrink: 0;

    border: 1px solid
            rgba(
                    0,
                    151,
                    255,
                    0.42
            );

    border-radius: 50%;

    background:
            linear-gradient(
                    145deg,
                    rgba(0, 140, 255, 0.28),
                    rgba(0, 78, 180, 0.20)
            );

    color:
            #1ed760;

    font-size: 16px;

    cursor: pointer;

    transition:
            transform
            0.2s ease,
            background
            0.2s ease,
            color
            0.2s ease,
            box-shadow
            0.2s ease;
}


.music-player.active .music-toggle {

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.75
            );

    background:
            #1ed760;

    color:
            #06130a;

    box-shadow:
            0 0 18px
            rgba(
                    30,
                    215,
                    96,
                    0.32
            );
}


.music-toggle:hover,
.music-toggle:focus-visible {

    transform:
            scale(1.06);

    background:
            rgba(
                    30,
                    215,
                    96,
                    0.22
            );

    outline: none;
}


.music-details {

    min-width: 0;

    display: flex;

    flex-direction: column;

    line-height: 1.2;
}


.music-title {

    max-width: 185px;

    overflow: hidden;

    color:
            #e8f1fb;

    font-size: 12px;
    font-weight: 700;

    white-space: nowrap;
    text-overflow: ellipsis;
}


.music-status {

    color:
            #8494a8;

    font-size: 10px;
}


.music-status-row {

    min-height: 12px;

    display: flex;

    align-items: center;

    gap: 6px;
}


.music-bars {

    height: 10px;

    display: inline-flex;

    align-items: flex-end;

    gap: 2px;

    opacity: 0;

    transition:
            opacity
            0.25s ease;
}


.music-bars i {

    width: 2px;
    height: 4px;

    border-radius: 2px;

    background:
            #1ed760;

    transform-origin: bottom;
}


.music-player.active .music-bars {

    opacity: 1;
}


.music-player.active .music-bars i {

    animation:
            musicBars
            0.8s
            ease-in-out
            infinite alternate;
}


.music-player.active .music-bars i:nth-child(2) {

    animation-delay: -0.35s;
}


.music-player.active .music-bars i:nth-child(3) {

    animation-delay: -0.60s;
}


@keyframes musicBars {

    from {

        transform: scaleY(0.65);
    }

    to {

        transform: scaleY(2.1);
    }

}


/* ==========================================
   SOCIALS
========================================== */

.socials {

    margin-top:
            25px;

    display: flex;

    justify-content:
            center;

    align-items:
            center;

    gap: 11px;

    flex-wrap:
            wrap;
}


.socials a,
.socials button {

    position: relative;

    width: 50px;
    height: 50px;

    padding: 0;

    display: flex;

    justify-content: center;
    align-items: center;

    border-radius:
            14px;

    border:
            1px solid
            rgba(
                    0,
                    132,
                    255,
                    0.17
            );

    background:
            rgba(
                    0,
                    119,
                    255,
                    0.06
            );

    color:
            #008cff;

    font-family:
            inherit;

    font-size:
            21px;

    text-decoration:
            none;

    cursor:
            pointer;

    outline:
            none;

    transition:
            transform
            0.25s ease,
            background
            0.25s ease,
            color
            0.25s ease,
            border-color
            0.25s ease,
            box-shadow
            0.25s ease;
}


@media (hover: hover) and (pointer: fine) {

    .socials a:hover,
    .socials button:hover,
    .socials a:focus-visible,
    .socials button:focus-visible {

    color:
            #ffffff;

    background:
            #087cff;

    border-color:
            #2996ff;

    transform:
            translateY(-5px)
            scale(1.04);

    box-shadow:
            0 0 25px
            rgba(
                    0,
                    132,
                    255,
                    0.45
            );
    }

}


/* ==========================================
   SOCIAL TOOLTIPS
========================================== */

.socials a::after,
.socials button::after {

    content:
            attr(data-tooltip);

    position:
            absolute;

    bottom:
            calc(100% + 10px);

    left:
            50%;

    transform:
            translateX(-50%)
            translateY(5px);

    padding:
            6px
            9px;

    border-radius:
            7px;

    background:
            #07111f;

    border:
            1px solid
            rgba(
                    0,
                    132,
                    255,
                    0.22
            );

    color:
            #c8d9ea;

    font-size:
            10px;

    font-weight:
            500;

    white-space:
            nowrap;

    opacity:
            0;

    pointer-events:
            none;

    transition:
            0.2s ease;
}


@media (hover: hover) and (pointer: fine) {

    .socials a:hover::after,
    .socials button:hover::after,
    .socials a:focus-visible::after,
    .socials button:focus-visible::after {

    opacity:
            1;

    transform:
            translateX(-50%)
            translateY(0);
    }

}


/* ==========================================
   NAMEMC
========================================== */

.namemc-logo {

    width: 27px;
    height: 27px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    border-radius:
            7px;

    background:
            #008cff;

    color:
            #04101f;

    font-family:
            Arial,
            Helvetica,
            sans-serif;

    font-size:
            21px;

    font-weight:
            900;

    line-height:
            1;

    transition:
            background
            0.25s ease,
            color
            0.25s ease,
            transform
            0.25s ease;
}


.namemc-button:hover
.namemc-logo {

    background:
            #ffffff;

    color:
            #087cff;

    transform:
            scale(1.05);
}


/* ==========================================
   MESSAGE
========================================== */

.message {

    min-height:
            20px;

    margin-top:
            15px;

    color:
            #62adff;

    font-size:
            13px;

    opacity:
            0;

    transform:
            translateY(4px);

    transition:
            opacity
            0.3s ease,
            transform
            0.3s ease;
}


.message.show {

    opacity:
            1;

    transform:
            translateY(0);
}


.socials button.copy-success {

    color:
            #1ed760;

    background:
            rgba(
                    30,
                    215,
                    96,
                    0.16
            );

    border-color:
            rgba(
                    30,
                    215,
                    96,
                    0.55
            );

    box-shadow:
            0 0 22px
            rgba(
                    30,
                    215,
                    96,
                    0.25
            );
    }

}


/* ==========================================
   VIEW COUNTER
========================================== */

.view-counter {

    position: fixed;

    left: 18px;
    bottom: 16px;

    z-index: 20;

    display: inline-flex;
    align-items: center;
    gap: 7px;

    padding: 9px 12px;

    border: 1px solid
            rgba(92, 158, 224, 0.2);

    border-radius: 999px;

    color: #7890a8;

    background:
            rgba(4, 12, 23, 0.78);

    box-shadow:
            0 10px 30px
            rgba(0, 0, 0, 0.24);

    font-size: 11px;

    backdrop-filter:
            blur(14px);
}


.view-counter i {

    color: #65b2ff;

    font-size: 11px;
}


.view-label {

    color: #9db3ca;
}


#viewCount {

    min-width: 10px;

    color: #e4f1ff;

    font-weight: 700;
}


/* ==========================================
   FOOTER
========================================== */

footer {

    position: fixed;

    left: 0;
    bottom: 18px;

    width: 100%;

    z-index: 10;

    text-align: center;

    color:
            #344253;

    font-size:
            12px;

    pointer-events:
            auto;
}


/* ==========================================
   MOBILE
========================================== */

@media
(max-width: 550px) {

    body {

        overflow-y:
                auto;

        background-attachment:
                scroll;
    }


    .game-launcher {

        top: 14px;
        left: 14px;

        width: 42px;
        height: 42px;
    }


    .admin-launcher {

        position: fixed;

        top: 14px;
        right: 14px;
        left: auto;

        z-index: 50;

        display: flex;

        visibility: visible;

        opacity: 1;
    }


    .game-panel {

        top: 66px;
        left: 12px;

        width: auto;
        max-width: none;
        right: 12px;

        padding: 15px;

        backdrop-filter: none;

        -webkit-backdrop-filter: none;
    }


    .background-glow {

        width: 320px;
        height: 320px;

        filter:
                blur(80px);

        opacity: 0.10;
    }


    .background-dot {

        animation: none;

        box-shadow: none;

        opacity: 0.30;
    }


    .dot-1,
    .dot-6,
    .dot-10,
    .dot-15,
    .dot-21,
    .dot-26,
    .dot-31,
    .dot-36 {

        animation:
                mobileDotPulse
                6s
                ease-in-out
                infinite;

        will-change:
                transform,
                opacity;
    }


    .profile-card {

        background:
                rgba(
                        4,
                        10,
                        20,
                        0.84
                );

        backdrop-filter: none;

        -webkit-backdrop-filter: none;
    }


    .profile-card::before {

        opacity: 0.30;

        background-size: 220% 100%;

        animation:
                mobileCardSweep
                8s
                ease-in-out
                infinite;
    }


    .avatar-wrapper {

        animation:
                mobileAvatarFloat
                5.5s
                ease-in-out
                infinite;

        will-change: transform;
    }


    .discord-dot.online {

        animation: none;
    }


    .profile-card::after {

        display: none;
    }


    #mouseGlow {

        display:
                none;
    }


    main {

        min-height:
                100svh;

        align-items:
                flex-start;

        padding:
                30px
                15px
                110px;
    }


    footer {

        display: block;

        bottom: 10px;

        font-size: 11px;
    }


    .profile-card {

        width:
                100%;

        padding:
                35px
                20px
                30px;
    }


    .avatar-wrapper {

        width:
                105px;

        height:
                105px;
    }


    h1 {

        font-size:
                32px;
    }


    .typewriter-wrapper {

        font-size:
                14px;
    }


    .discord-card {

        padding:
                13px;
    }


    .discord-avatar {

        width:
                50px;

        height:
                50px;
    }


    .intro-item {

        animation-name: mobileIntroFade;
        animation-duration: 0.58s;
    }


    .intro-1 { animation-delay: 0.06s; }
    .intro-2 { animation-delay: 0.13s; }
    .intro-3 { animation-delay: 0.20s; }
    .intro-4 { animation-delay: 0.27s; }
    .intro-5 { animation-delay: 0.34s; }


    .game-launcher,
    .game-action,
    .game-tab,
    .socials a,
    .socials button {

        touch-action: manipulation;
    }


    .discord-activity-image {

        width:
                60px;

        height:
                52px;
    }


    .spotify-cover {

        width:
                55px;

        height:
                55px;
    }


    .socials {

        gap:
                8px;
    }


    .socials a,
    .socials button {

        width:
                45px;

        height:
                45px;

        font-size:
                19px;
    }


    .namemc-logo {

        width:
                25px;

        height:
                25px;

        font-size:
                19px;
    }


    .socials a::after,
    .socials button::after {

        display:
                none;
    }


    .view-counter {

        left: 14px;
        bottom: 14px;

        padding: 8px 10px;
    }


    .music-player {

        right: 14px;
        bottom: 14px;

        max-width: calc(100vw - 150px);

        padding-right: 10px;
    }


    .music-title {

        max-width: 120px;
    }

}


@keyframes mobileDotPulse {

    0%,
    100% {
        opacity: 0.18;
        transform: scale(0.9);
    }

    50% {
        opacity: 0.62;
        transform: scale(1.22);
    }

}


@keyframes mobileAvatarFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-4px);
    }

}


@keyframes mobileIntroFade {

    from {
        opacity: 0;
        transform: translateY(11px) scale(0.99);
    }

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

}


@keyframes mobileCardSweep {

    0%,
    100% {
        opacity: 0.16;
        background-position: 120% 0;
    }

    50% {
        opacity: 0.46;
        background-position: -20% 0;
    }

}


@media (hover: none) and (pointer: coarse) {

    .game-launcher:active,
    .game-action:active,
    .game-tab:active,
    .socials a:active,
    .socials button:active {

        transform: scale(0.94);
    }

}


@media (prefers-reduced-motion: reduce) {

    .background-dot,
    .avatar-wrapper,
    .intro-item {

        animation: none;
    }

    .intro-item {

        opacity: 1;
        transform: none;
    }

}


/* ==========================================
   PRIVACY PAGE
========================================== */

.legal-page {

    min-height: 100vh;

    display: block;

    padding: 48px 20px;

    overflow-y: auto;
}


.legal-content {

    position: relative;

    z-index: 2;

    display: block;

    min-height: 0;

    width: min(760px, 100%);

    margin: 0 auto;

    padding: 32px;

    color: #c6d3e0;

    background: rgba(4, 13, 25, 0.88);

    border: 1px solid rgba(0, 140, 255, 0.24);

    border-radius: 20px;

    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.36);
}


.legal-content h1 {

    margin: 16px 0 8px;

    font-size: clamp(30px, 7vw, 42px);
}


.legal-content h2 {

    margin: 30px 0 10px;

    color: #eef7ff;

    font-size: 19px;
}


.legal-content p {

    margin: 0;

    color: #afbfce;

    line-height: 1.72;
}


.legal-address {

    margin: 0;
    padding: 15px 17px;

    border: 1px solid rgba(46, 156, 255, 0.22);
    border-radius: 13px;

    color: #b9cbd9;
    background: rgba(0, 88, 193, 0.08);
    font-style: normal;
    line-height: 1.7;
}


.legal-address strong {

    color: #eef7ff;
}


.legal-content p + h2 {

    margin-top: 30px;
}


.legal-kicker {

    margin-top: 4px !important;

    color: #4eb1ff !important;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.legal-contact {

    display: inline-flex;
    align-items: center;
    gap: 9px;

    margin-top: 2px;
    padding: 11px 14px;

    border: 1px solid rgba(46, 156, 255, 0.3);
    border-radius: 12px;

    color: #dff2ff;
    background: rgba(0, 117, 255, 0.1);
    text-decoration: none;
}


.legal-contact:hover,
.legal-contact:focus-visible {

    border-color: #43a7ff;
    background: rgba(0, 132, 255, 0.17);
}


.legal-external {

    margin-top: 13px;

    font: inherit;
    font-size: 14px;
    cursor: pointer;
}


.legal-warning {

    margin-top: 28px !important;
    padding: 13px 15px;

    border-left: 3px solid #4baeff;
    border-radius: 0 12px 12px 0;

    background: rgba(0, 107, 235, 0.1);
}


.legal-back,
footer a {

    color: #42a9ff;

    text-decoration: none;
}


.legal-back:hover,
.legal-back:focus-visible,
footer a:hover,
footer a:focus-visible {

    color: #d9f0ff;

    text-decoration: underline;
}


/* ==========================================
   ADMIN SETTINGS
========================================== */

.admin-note {

    padding: 12px 14px;

    border: 1px solid rgba(0, 140, 255, 0.18);
    border-radius: 13px;

    background: rgba(0, 119, 255, 0.06);
}


.admin-form {

    display: grid;
    gap: 18px;

    margin-top: 24px;
}


.admin-section {

    padding: 18px;

    border: 1px solid rgba(92, 158, 224, 0.16);
    border-radius: 16px;

    background: rgba(2, 9, 19, 0.42);
}


.admin-section h2 {

    margin-top: 0;
}


.admin-section p {

    margin-bottom: 16px;

    font-size: 14px;
}


.admin-section label {

    display: grid;
    gap: 7px;

    margin-top: 14px;

    color: #d5e8f8;

    font-size: 13px;
    font-weight: 700;
}


.admin-section input,
.admin-section textarea,
.admin-section select {

    width: 100%;

    box-sizing: border-box;

    padding: 10px 11px;

    border: 1px solid rgba(92, 158, 224, 0.24);
    border-radius: 10px;

    color: #eaf6ff;
    background: rgba(1, 8, 17, 0.78);

    font: inherit;
}


.admin-section textarea {

    min-height: 102px;

    resize: vertical;
}


.admin-section input:focus,
.admin-section textarea:focus,
.admin-section select:focus {

    border-color: #2996ff;

    outline: 2px solid rgba(41, 150, 255, 0.2);
    outline-offset: 2px;
}


.admin-grid {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
}


.admin-grid label {

    margin-top: 12px;
}


.admin-actions {

    display: flex;
    align-items: center;
    gap: 13px;
    flex-wrap: wrap;
}


.admin-login {

    max-width: 470px;
}


.admin-login > p {

    margin-top: 12px;
}


.admin-login-error {

    margin-top: 18px !important;
    padding: 10px 12px;

    border: 1px solid rgba(255, 90, 132, 0.35);
    border-radius: 10px;

    color: #ffd7e1 !important;
    background: rgba(180, 22, 68, 0.18);
}


.admin-logout {

    margin-top: 14px;
}


.admin-logout button {

    padding: 7px 10px;

    border: 1px solid rgba(92, 158, 224, 0.24);
    border-radius: 9px;

    color: #a8bdd0;
    background: rgba(2, 9, 19, 0.5);

    font: inherit;
    font-size: 12px;

    cursor: pointer;
}


.admin-logout button:hover,
.admin-logout button:focus-visible {

    border-color: rgba(41, 150, 255, 0.6);

    color: #eaf6ff;
}


#saveStatus {

    color: #a8bdd0;

    font-size: 13px;
}


@media (max-width: 560px) {

    .legal-page {

        padding: 20px 14px;
    }

    .legal-content {

        padding: 24px 19px;

        border-radius: 16px;
    }


    .admin-section {

        padding: 15px;
    }


    .admin-grid {

        grid-template-columns: 1fr;
    }

}
