/* ==========================================
   Website Styling
   ========================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


/* ==========================================
   Website Variables
   ========================================== */

:root {
    --top-nav-height: 70px;

    --sidebar-expanded-width: 250px;
    --sidebar-collapsed-width: 82px;

    --sidebar-transition: 0.28s ease;
}


/* ==========================================
   Base Page
   ========================================== */

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;

    overflow-x: hidden;

    font-family: Arial, Helvetica, sans-serif;

    background-color: #000000;
    color: #ffffff;
}


/* ==========================================
   Transparent Background
   ========================================== */

body::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image: url("background.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    opacity: 0.40;

    z-index: -1;
}


/* ==========================================
   Top Navigation Bar
   ========================================== */

.navbar {
    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
    height: var(--top-nav-height);

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 25px;

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

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

    border-bottom: 1px solid rgba(255, 255, 255, 0.70);

    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.30);

    z-index: 9999;
}


/* ==========================================
   Top Navigation — Left Side
   ========================================== */

.nav-left {
    flex: 0 0 220px;

    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.logo {
    color: #111111;

    font-size: 28px;
    font-weight: bold;

    cursor: pointer;
    user-select: none;
}


/* ==========================================
   Top Navigation — Center
   ========================================== */

.nav-center {
    flex: 1;

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

    padding: 0 20px;
}

.search-box {
    width: 100%;
    max-width: 600px;
    height: 42px;

    padding: 0 18px;

    color: #111111;

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

    border: 1px solid rgba(30, 30, 40, 0.40);
    border-radius: 8px;

    outline: none;

    font-size: 16px;

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

.search-box::placeholder {
    color: #666666;
}

.search-box:hover {
    background: rgba(255, 255, 255, 0.95);
}

.search-box:focus {
    background: #ffffff;

    border-color: #7a20df;

    box-shadow:
        0 0 0 3px rgba(122, 32, 223, 0.20);
}


/* ==========================================
   Top Navigation — Right Side
   ========================================== */

.nav-right {
    flex: 0 0 220px;

    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 10px;

    color: #111111;
    font-weight: bold;
}

.fx-label {
    margin-right: 2px;
}

.fx-button {
    min-width: 48px;

    padding: 7px 14px;

    color: #111111;

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

    border: 1px solid rgba(30, 30, 40, 0.35);
    border-radius: 6px;

    font-weight: bold;

    cursor: pointer;

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

.fx-button:hover {
    background: rgba(255, 255, 255, 0.95);

    transform: translateY(-1px);
}

.fx-button.active {
    color: #ffffff;

    background: #7440d8;

    border-color: #5d24be;

    box-shadow:
        0 0 12px rgba(116, 64, 216, 0.65);
}


/* ==========================================
   Vertical Sidebar
   ========================================== */

.sidebar {
    position: fixed;

    top: var(--top-nav-height);
    left: 0;

    width: var(--sidebar-expanded-width);
    height: calc(100vh - var(--top-nav-height));

    display: flex;
    flex-direction: column;

    padding: 14px 10px;

    overflow: hidden;

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

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

    border-right: 1px solid rgba(255, 255, 255, 0.72);

    box-shadow:
        4px 0 18px rgba(0, 0, 0, 0.30);

    transition:
        width var(--sidebar-transition),
        transform var(--sidebar-transition);

    z-index: 9000;
}


/* ==========================================
   Sidebar Header
   ========================================== */

.sidebar-header {
    min-height: 48px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 8px;

    margin-bottom: 12px;
    padding: 0 6px;
}

.sidebar-title {
    overflow: hidden;

    color: #111111;

    font-size: 18px;
    font-weight: bold;

    white-space: nowrap;

    transition:
        opacity var(--sidebar-transition),
        width var(--sidebar-transition);
}

.sidebar-toggle {
    flex: 0 0 38px;

    width: 38px;
    height: 38px;

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

    color: #111111;

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

    border: 1px solid rgba(25, 25, 35, 0.30);
    border-radius: 50%;

    cursor: pointer;

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

.sidebar-toggle:hover {
    background: #ffffff;

    transform: scale(1.06);

    box-shadow:
        0 0 10px rgba(116, 64, 216, 0.40);
}

.toggle-icon {
    font-size: 28px;
    line-height: 1;
}


/* ==========================================
   Sidebar Menu
   ========================================== */

.sidebar-menu {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.sidebar-link {
    min-height: 58px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 7px;

    overflow: hidden;

    color: #111111;

    text-decoration: none;

    border: 1px solid transparent;
    border-radius: 12px;

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

.sidebar-link:hover {
    background: rgba(255, 255, 255, 0.78);

    border-color: rgba(116, 64, 216, 0.30);

    transform: translateX(2px);

    box-shadow:
        0 3px 12px rgba(0, 0, 0, 0.14);
}


/* ==========================================
   Circular Sidebar Icons
   ========================================== */

.sidebar-icon {
    flex: 0 0 46px;

    width: 46px;
    height: 46px;

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

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #8b5bea,
            #5422b8
        );

    border: 2px solid rgba(255, 255, 255, 0.88);
    border-radius: 50%;

    box-shadow:
        0 2px 7px rgba(0, 0, 0, 0.30),
        0 0 9px rgba(116, 64, 216, 0.40);

    font-size: 18px;
    font-weight: bold;

    user-select: none;

    transition:
        transform 0.20s ease,
        box-shadow 0.20s ease;
}

.sidebar-link:hover .sidebar-icon {
    transform: scale(1.07);

    box-shadow:
        0 3px 10px rgba(0, 0, 0, 0.32),
        0 0 14px rgba(116, 64, 216, 0.72);
}


/* ==========================================
   Sidebar Text
   ========================================== */

.sidebar-text {
    min-width: 0;

    overflow: hidden;

    color: #111111;

    font-size: 15px;
    font-weight: bold;

    white-space: nowrap;

    transition:
        opacity var(--sidebar-transition),
        width var(--sidebar-transition);
}

.subscription-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    gap: 3px;
}

.coming-soon {
    display: inline-block;

    padding: 2px 7px;

    color: #ffffff;

    background: #7440d8;

    border-radius: 20px;

    font-size: 10px;
    font-weight: bold;
    text-transform: uppercase;

    letter-spacing: 0.4px;
}


/* ==========================================
   Discord at Bottom
   ========================================== */

.sidebar-bottom {
    margin-top: auto;

    padding-top: 12px;

    border-top:
        1px solid rgba(25, 25, 35, 0.18);
}

.discord-link {
    background: rgba(88, 101, 242, 0.12);
}

.discord-icon {
    background:
        linear-gradient(
            145deg,
            #7584ff,
            #4652c7
        );

    box-shadow:
        0 2px 7px rgba(0, 0, 0, 0.30),
        0 0 10px rgba(88, 101, 242, 0.55);
}


/* ==========================================
   Collapsed Sidebar
   ========================================== */

body.sidebar-collapsed .sidebar {
    width: var(--sidebar-collapsed-width);
}

body.sidebar-collapsed .sidebar-title {
    width: 0;

    opacity: 0;

    pointer-events: none;
}

body.sidebar-collapsed .sidebar-header {
    justify-content: center;

    padding: 0;
}

body.sidebar-collapsed .sidebar-link {
    justify-content: center;

    padding-left: 7px;
    padding-right: 7px;
}

body.sidebar-collapsed .sidebar-text {
    width: 0;

    opacity: 0;

    pointer-events: none;
}

body.sidebar-collapsed .sidebar-link:hover {
    transform: none;
}


/* ==========================================
   Main Content
   ========================================== */

main {
    width: auto;
    max-width: 2400px;

    margin-left:
        calc(var(--sidebar-expanded-width) + 2.5%);

    margin-right: 2.5%;

    padding-top: 90px;

    transition:
        margin-left var(--sidebar-transition);
}

body.sidebar-collapsed main {
    margin-left:
        calc(var(--sidebar-collapsed-width) + 2.5%);
}


/* ==========================================
   Main Banner
   ========================================== */

.banner {
    position: relative;

    width: 100%;

    aspect-ratio: 5 / 2;

    min-height: 220px;
    max-height: 800px;

    overflow: hidden;

    margin: 0 auto;
}

.banner::after {
    content: "";

    position: absolute;
    inset: 0;

    background-image: url("banner.png");

    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;

    pointer-events: none;

    z-index: 5;
}


/* ==========================================
   Games Dynamic Banner
   ========================================== */

.game-banner-art {
    position: absolute;
    inset: 0;

    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;

    z-index: 1;

    transition:
        opacity 0.35s ease,
        background-image 0.35s ease;
}

.games-banner .game-banner-art {
    background:
        radial-gradient(
            circle at center,
            rgba(55, 36, 100, 0.30),
            rgba(0, 0, 0, 0.25)
        );
}

.games-banner .game-banner-art.has-image {
    background-size: cover;
    background-position: center;
}


/* ==========================================
   Games Banner Text
   ========================================== */

.game-banner-info {
    position: absolute;

    left: 50%;
    bottom: 18%;

    transform: translateX(-50%);

    min-width: 260px;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 5px;

    padding: 10px 20px;

    color: #ffffff;

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

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

    border: 1px solid rgba(255, 255, 255, 0.30);
    border-radius: 10px;

    text-align: center;

    z-index: 3;
}

.game-banner-category {
    font-size: 13px;

    text-transform: uppercase;

    letter-spacing: 2px;

    color: rgba(255, 255, 255, 0.72);
}

.game-banner-title {
    font-size: 24px;
    font-weight: bold;

    text-shadow:
        0 0 10px rgba(0, 190, 255, 0.70);
}


/* ==========================================
   Image Navigation Bar Below Banner
   ========================================== */

.button-navigation {
    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(8, minmax(0, 1fr));

    align-items: center;

    gap: 8px;

    margin-top: 15px;

    padding: 8px;

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

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

    border:
        1px solid rgba(255, 255, 255, 0.18);

    border-radius: 12px;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.35);
}

.image-nav-button {
    display: block;

    width: 100%;

    text-decoration: none;

    border-radius: 14px;

    transition:
        transform 0.20s ease,
        filter 0.20s ease;
}

.image-nav-button img {
    display: block;

    width: 100%;
    height: auto;

    object-fit: contain;

    pointer-events: none;
}

.image-nav-button:hover {
    transform: translateY(-3px);

    filter:
        brightness(1.12)
        drop-shadow(
            0 0 8px
            rgba(0, 170, 255, 0.80)
        );
}

.image-nav-button:active {
    transform:
        translateY(1px)
        scale(0.97);
}

.image-nav-button.active {
    filter:
        brightness(1.12)
        drop-shadow(
            0 0 10px
            rgba(0, 190, 255, 0.90)
        );
}


/* ==========================================
   Home / Main Page Content Area
   ========================================== */

.home-content {
    width: 100%;

    margin-top: 25px;
    margin-bottom: 50px;

    padding: 28px;

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

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

    border: 2px solid #ffffff;
    border-radius: 18px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.40),
        0 0 10px rgba(255, 255, 255, 0.10);
}


/* ==========================================
   Content Title
   ========================================== */

.home-title {
    margin-bottom: 25px;

    color: #ffffff;

    font-size: 28px;

    text-align: center;

    text-shadow:
        0 0 8px rgba(0, 190, 255, 0.45);
}


/* ==========================================
   Community Panels
   ========================================== */

.community-panel {
    width: 100%;

    margin-bottom: 35px;
}

.community-panel:last-child {
    margin-bottom: 0;
}


/* ==========================================
   Panel Headings
   ========================================== */

.panel-heading {
    margin-bottom: 12px;
}

.panel-heading h2 {
    margin-bottom: 5px;

    color: #ffffff;

    font-size: 21px;
}

.panel-heading p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.80);

    font-size: 14px;

    line-height: 1.5;
}


/* ==========================================
   Discussion and Chat Frames
   ========================================== */

.discussion-placeholder,
.chat-placeholder {
    width: 100%;

    min-height: 350px;

    display: flex;
    flex-direction: column;

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

    padding: 30px;

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

    border: 3px solid #ffffff;
    border-radius: 16px;

    text-align: center;

    box-shadow:
        0 0 15px rgba(255, 255, 255, 0.18),
        inset 0 0 25px rgba(0, 0, 0, 0.30);
}


/* ==========================================
   Placeholder Icons
   ========================================== */

.placeholder-icon {
    width: 64px;
    height: 64px;

    display: flex;

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

    margin-bottom: 16px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #8b5bea,
            #5422b8
        );

    border: 2px solid #ffffff;
    border-radius: 50%;

    box-shadow:
        0 0 14px rgba(116, 64, 216, 0.60);

    font-size: 27px;
    font-weight: bold;
}

.discussion-placeholder h3,
.chat-placeholder h3 {
    margin: 0 0 10px 0;

    color: #ffffff;

    font-size: 22px;
}

.discussion-placeholder p,
.chat-placeholder p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size: 15px;

    line-height: 1.5;

    text-align: center;
}


/* ==========================================
   GAMES PAGE
   ========================================== */

.games-section {
    width: 100%;

    margin-bottom: 28px;
}


/* ==========================================
   Game Category Grid
   ========================================== */

.game-category-grid {
    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(5, minmax(130px, 1fr));

    gap: 12px;
}


/* ==========================================
   Game Category Buttons
   ========================================== */

.game-category-button {
    min-height: 125px;

    display: flex;
    flex-direction: column;

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

    gap: 7px;

    padding: 14px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            rgba(20, 75, 135, 0.82),
            rgba(65, 25, 120, 0.82)
        );

    border:
        2px solid
        rgba(255, 255, 255, 0.65);

    border-radius: 15px;

    cursor: pointer;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

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

.game-category-button:hover {
    transform:
        translateY(-3px);

    border-color: #ffffff;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.35),
        0 0 12px rgba(0, 190, 255, 0.50);
}

.game-category-button.active {
    border-color: #ffffff;

    background:
        linear-gradient(
            145deg,
            rgba(90, 40, 190, 0.95),
            rgba(0, 125, 210, 0.90)
        );

    box-shadow:
        0 0 16px rgba(0, 190, 255, 0.70);
}


/* ==========================================
   Category Icon Placeholder
   ========================================== */

.category-icon {
    width: 54px;
    height: 54px;

    display: flex;

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

    color: #ffffff;

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

    border:
        2px solid
        rgba(255, 255, 255, 0.80);

    border-radius: 50%;

    font-size: 16px;
    font-weight: bold;
}

.category-name {
    font-size: 16px;
    font-weight: bold;

    text-align: center;
}

.category-subtitle {
    font-size: 11px;

    color:
        rgba(255, 255, 255, 0.72);

    text-transform: uppercase;

    letter-spacing: 1px;
}


/* ==========================================
   Expandable Game List
   ========================================== */

.game-list-section {
    width: 100%;

    margin-bottom: 28px;

    padding: 20px;

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

    border:
        2px solid #ffffff;

    border-radius: 15px;

    box-shadow:
        inset 0 0 18px
        rgba(0, 0, 0, 0.35);
}

.game-list-section[hidden] {
    display: none;
}

.game-list-heading {
    display: flex;

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

    gap: 20px;

    margin-bottom: 16px;
}

.game-list-heading h2 {
    font-size: 22px;
}


/* ==========================================
   Game List
   ========================================== */

.game-list {
    display: grid;

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

    gap: 10px;
}

.game-list-button {
    min-height: 52px;

    padding: 10px 14px;

    color: #ffffff;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.35);

    border-radius: 10px;

    font-size: 14px;
    font-weight: bold;

    cursor: pointer;

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

.game-list-button:hover {
    background:
        rgba(255, 255, 255, 0.18);

    border-color: #ffffff;

    transform:
        translateY(-2px);
}

.game-list-button.active {
    background:
        rgba(116, 64, 216, 0.75);

    border-color: #ffffff;

    box-shadow:
        0 0 10px
        rgba(116, 64, 216, 0.65);
}


/* ==========================================
   Games Close Buttons
   ========================================== */

.close-game-list,
.close-game-detail {
    flex: 0 0 38px;

    width: 38px;
    height: 38px;

    color: #ffffff;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.40);

    border-radius: 50%;

    font-size: 23px;

    cursor: pointer;

    transition:
        background-color 0.20s ease,
        transform 0.20s ease;
}

.close-game-list:hover,
.close-game-detail:hover {
    background:
        rgba(255, 255, 255, 0.25);

    transform:
        scale(1.06);
}


/* ==========================================
   Individual Game Details
   ========================================== */

.game-detail-panel {
    width: 100%;

    margin-bottom: 35px;

    padding: 24px;

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

    border:
        3px solid #ffffff;

    border-radius: 16px;

    box-shadow:
        0 0 15px rgba(255, 255, 255, 0.16),
        inset 0 0 25px rgba(0, 0, 0, 0.30);
}

.game-detail-panel[hidden] {
    display: none;
}

.game-detail-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 22px;

    padding-bottom: 15px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.20);
}

.game-detail-header h2 {
    margin-top: 4px;

    font-size: 27px;
}

.game-detail-category {
    color:
        rgba(255, 255, 255, 0.68);

    font-size: 12px;

    text-transform: uppercase;

    letter-spacing: 1.5px;
}

.game-detail-layout {
    display: grid;

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

    gap: 28px;

    align-items: start;
}

.game-summary {
    min-width: 0;
}

.game-summary h3 {
    margin-bottom: 12px;

    font-size: 20px;
}

.game-summary p {
    max-width: none;

    margin: 0 0 20px 0;

    color:
        rgba(255, 255, 255, 0.88);

    line-height: 1.8;
}


/* ==========================================
   Game Tutorial Link
   ========================================== */

.game-tutorial-area {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 12px;

    padding-top: 15px;

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

    color:
        rgba(255, 255, 255, 0.75);
}

.tutorial-link {
    display: inline-block;

    padding: 9px 15px;

    color: #ffffff;

    background: #7440d8;

    border:
        1px solid rgba(255, 255, 255, 0.55);

    border-radius: 8px;

    text-decoration: none;

    font-weight: bold;

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

.tutorial-link:hover {
    background: #8651e8;

    transform:
        translateY(-2px);

    box-shadow:
        0 0 12px rgba(116, 64, 216, 0.65);
}


/* ==========================================
   Game Thumbnail
   ========================================== */

.game-thumbnail-area {
    width: 100%;
}

.game-thumbnail-placeholder,
.game-thumbnail {
    width: 100%;

    aspect-ratio: 4 / 3;

    border:
        2px solid #ffffff;

    border-radius: 12px;
}

.game-thumbnail-placeholder {
    display: flex;

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

    padding: 20px;

    color:
        rgba(255, 255, 255, 0.72);

    background:
        linear-gradient(
            145deg,
            rgba(30, 30, 45, 0.90),
            rgba(10, 10, 18, 0.90)
        );

    text-align: center;
}

.game-thumbnail {
    display: block;

    object-fit: cover;
}

.game-thumbnail[hidden],
.game-thumbnail-placeholder[hidden] {
    display: none;
}


/* ==========================================
   Games Chat Area
   ========================================== */

.games-chat-panel {
    margin-top: 35px;

    padding-top: 30px;

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


/* ==========================================
   VIDEOS PAGE
   ========================================== */

.videos-content {
    width: 100%;
}


/* ==========================================
   Video Submission Section
   ========================================== */

.video-submit-section {
    width: 100%;

    margin-bottom: 35px;
    padding-bottom: 30px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.20);
}

.video-submit-form {
    width: 100%;

    padding: 22px;

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

    border:
        2px solid #ffffff;

    border-radius: 15px;

    box-shadow:
        inset 0 0 18px rgba(0, 0, 0, 0.30);
}

.video-form-group {
    width: 100%;

    margin-bottom: 18px;
}

.video-form-group label {
    display: block;

    margin-bottom: 7px;

    color: #ffffff;

    font-size: 14px;
    font-weight: bold;
}

.video-form-group input,
.video-form-group textarea {
    width: 100%;

    padding: 12px 14px;

    color: #ffffff;

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

    border:
        1px solid rgba(255, 255, 255, 0.45);

    border-radius: 8px;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 15px;

    outline: none;

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

.video-form-group textarea {
    min-height: 100px;

    resize: vertical;
}

.video-form-group input::placeholder,
.video-form-group textarea::placeholder {
    color:
        rgba(255, 255, 255, 0.50);
}

.video-form-group input:focus,
.video-form-group textarea:focus {
    background:
        rgba(255, 255, 255, 0.15);

    border-color: #ffffff;

    box-shadow:
        0 0 10px rgba(0, 190, 255, 0.45);
}


/* ==========================================
   Post Video Button
   ========================================== */

.video-submit-button {
    padding: 11px 22px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #7e46df,
            #5422b8
        );

    border:
        1px solid rgba(255, 255, 255, 0.70);

    border-radius: 9px;

    font-size: 15px;
    font-weight: bold;

    cursor: pointer;

    transition:
        transform 0.20s ease,
        box-shadow 0.20s ease;
}

.video-submit-button:hover {
    background:
        linear-gradient(
            145deg,
            #8b55e8,
            #6330c7
        );

    transform:
        translateY(-2px);

    box-shadow:
        0 0 14px rgba(116, 64, 216, 0.65);
}

.video-submit-button:active {
    transform: translateY(1px);
}

.video-form-message {
    min-height: 18px;

    margin: 12px 0 0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size: 14px;
}


/* ==========================================
   Video Archive
   ========================================== */

.video-archive-section {
    width: 100%;
}

.video-grid {
    width: 100%;

    display: grid;

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

    gap: 18px;
}


/* ==========================================
   Individual Video Card
   ========================================== */

.video-card {
    min-width: 0;

    overflow: hidden;

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

    border:
        2px solid rgba(255, 255, 255, 0.72);

    border-radius: 14px;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.35);

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

.video-card:hover {
    transform:
        translateY(-3px);

    border-color: #ffffff;

    box-shadow:
        0 8px 22px rgba(0, 0, 0, 0.45),
        0 0 12px rgba(0, 190, 255, 0.35);
}


/* ==========================================
   YouTube Thumbnail
   ========================================== */

.video-thumbnail-link {
    position: relative;

    display: block;

    width: 100%;

    aspect-ratio: 16 / 9;

    overflow: hidden;

    background: #000000;
}

.video-thumbnail-image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.25s ease,
        filter 0.25s ease;
}

.video-thumbnail-link:hover
.video-thumbnail-image {
    transform:
        scale(1.03);

    filter:
        brightness(1.08);
}


/* ==========================================
   Thumbnail Play Button
   ========================================== */

.video-play-button {
    position: absolute;

    top: 50%;
    left: 50%;

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

    width: 58px;
    height: 58px;

    display: flex;

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

    padding-left: 4px;

    color: #ffffff;

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

    border:
        2px solid rgba(255, 255, 255, 0.90);

    border-radius: 50%;

    font-size: 24px;

    box-shadow:
        0 3px 12px rgba(0, 0, 0, 0.45);

    pointer-events: none;

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

.video-thumbnail-link:hover
.video-play-button {
    transform:
        translate(-50%, -50%)
        scale(1.08);

    background:
        rgba(116, 64, 216, 0.92);

    box-shadow:
        0 0 15px rgba(116, 64, 216, 0.70);
}


/* ==========================================
   Video Information
   ========================================== */

.video-card-info {
    padding: 15px;
}

.video-card-info h3 {
    margin-bottom: 6px;

    color: #ffffff;

    font-size: 17px;

    line-height: 1.35;
}

.video-post-date {
    display: block;

    margin-bottom: 10px;

    color:
        rgba(255, 255, 255, 0.55);

    font-size: 12px;
}

.video-card-info p {
    max-width: none;

    margin: 0 0 14px 0;

    color:
        rgba(255, 255, 255, 0.78);

    font-size: 14px;

    line-height: 1.5;

    overflow-wrap: anywhere;
}


/* ==========================================
   Watch on YouTube Link
   ========================================== */

.video-youtube-link {
    display: inline-block;

    padding: 7px 11px;

    color: #ffffff;

    background:
        rgba(116, 64, 216, 0.55);

    border:
        1px solid rgba(255, 255, 255, 0.35);

    border-radius: 7px;

    text-decoration: none;

    font-size: 13px;
    font-weight: bold;

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

.video-youtube-link:hover {
    background:
        rgba(116, 64, 216, 0.85);

    transform:
        translateY(-1px);

    box-shadow:
        0 0 10px rgba(116, 64, 216, 0.45);
}


/* ==========================================
   Empty Video Archive
   ========================================== */

.video-empty-state {
    width: 100%;

    min-height: 320px;

    display: flex;
    flex-direction: column;

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

    padding: 30px;

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

    border:
        3px solid #ffffff;

    border-radius: 16px;

    text-align: center;

    box-shadow:
        0 0 15px rgba(255, 255, 255, 0.18),
        inset 0 0 25px rgba(0, 0, 0, 0.30);
}

.video-empty-state[hidden] {
    display: none;
}

.video-empty-state h3 {
    margin-bottom: 8px;

    color: #ffffff;

    font-size: 21px;
}

.video-empty-state p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 14px;

    line-height: 1.5;
}


/* ==========================================
   Keyboard Focus
   ========================================== */

.image-nav-button:focus-visible,
.fx-button:focus-visible,
.sidebar-toggle:focus-visible,
.sidebar-link:focus-visible,
.game-category-button:focus-visible,
.game-list-button:focus-visible,
.close-game-list:focus-visible,
.close-game-detail:focus-visible,
.tutorial-link:focus-visible,
.video-submit-button:focus-visible,
.video-thumbnail-link:focus-visible,
.video-youtube-link:focus-visible {
    outline: 3px solid #ffffff;

    outline-offset: 3px;
}


/* ==========================================
   Sidebar Mobile Overlay
   ========================================== */

.sidebar-overlay {
    display: none;

    position: fixed;

    inset:
        var(--top-nav-height)
        0
        0
        0;

    width: 100%;

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

    border: none;

    cursor: pointer;

    z-index: 8500;
}


/* ==========================================
   Videos — Smaller Desktop
   ========================================== */

@media (max-width: 1300px) {

    .video-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* ==========================================
   Tablet Layout
   ========================================== */

@media (max-width: 1200px) {

    .button-navigation {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }

    .game-category-grid {
        grid-template-columns:
            repeat(3, minmax(150px, 1fr));
    }

    .game-list {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ==========================================
   Smaller Desktop / Tablet
   ========================================== */

@media (max-width: 1000px) {

    .game-detail-layout {
        grid-template-columns:
            minmax(0, 1fr) 240px;
    }

}


/* ==========================================
   Mobile Navigation Layout
   ========================================== */

@media (max-width: 900px) {

    :root {
        --top-nav-height: 150px;
    }


    .navbar {
        height:
            var(--top-nav-height);

        min-height:
            var(--top-nav-height);

        flex-wrap: wrap;

        padding: 12px 15px;
    }


    .nav-left,
    .nav-right {
        flex: 1;

        width: auto;

        justify-content: center;

        margin: 5px 0;
    }


    .nav-center {
        flex:
            0 0 100%;

        order: 3;

        width: 100%;

        padding:
            8px 0 0;
    }


    .search-box {
        max-width: 100%;
    }


    /* Mobile Sidebar */

    .sidebar {
        width:
            min(280px, 85vw);

        transform:
            translateX(-105%);
    }


    body.sidebar-collapsed .sidebar {
        width:
            min(280px, 85vw);
    }


    body.sidebar-mobile-open .sidebar {
        transform:
            translateX(0);
    }


    body.sidebar-mobile-open
    .sidebar-overlay {
        display: block;
    }


    body.sidebar-collapsed
    .sidebar-title,

    body.sidebar-collapsed
    .sidebar-text {

        width: auto;

        opacity: 1;

        pointer-events: auto;
    }


    body.sidebar-collapsed
    .sidebar-header {

        justify-content:
            space-between;

        padding: 0 6px;
    }


    body.sidebar-collapsed
    .sidebar-link {

        justify-content:
            flex-start;
    }


    /* Main Content */

    main,
    body.sidebar-collapsed main {

        width: 94%;

        margin-left: auto;
        margin-right: auto;

        padding-top: 170px;
    }


    /* Games */

    .game-detail-layout {
        grid-template-columns: 1fr;
    }


    .game-thumbnail-area {
        max-width: 420px;

        margin: 0 auto;
    }


    /* Videos */

    .video-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ==========================================
   Small-Screen Layout
   ========================================== */

@media (max-width: 650px) {

    .button-navigation {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 6px;

        padding: 6px;
    }


    .banner {
        min-height: 180px;
    }


    .home-content {
        padding: 15px;

        border-radius: 14px;
    }


    .home-title {
        font-size: 24px;
    }


    .discussion-placeholder,
    .chat-placeholder {
        min-height: 280px;

        padding: 20px;
    }


    /* Games */

    .game-category-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .game-category-button {
        min-height: 110px;
    }


    .game-list {
        grid-template-columns: 1fr;
    }


    .game-detail-panel {
        padding: 16px;
    }


    .game-detail-header h2 {
        font-size: 22px;
    }


    .game-banner-info {
        min-width: 200px;

        max-width: 70%;

        bottom: 14%;

        padding: 8px 14px;
    }


    .game-banner-title {
        font-size: 18px;
    }


    /* Videos */

    .video-grid {
        grid-template-columns: 1fr;
    }


    .video-submit-form {
        padding: 15px;
    }


    .video-play-button {
        width: 52px;
        height: 52px;

        font-size: 21px;
    }

}


/* ==========================================
   Very Small Screens
   ========================================== */

@media (max-width: 420px) {

    .logo {
        font-size: 22px;
    }


    .nav-right {
        gap: 5px;
    }


    .fx-button {
        min-width: 42px;

        padding: 7px 8px;
    }


    .sidebar {
        width: 88vw;
    }


    /* Games */

    .game-category-grid {
        grid-template-columns: 1fr;
    }


    .game-tutorial-area {
        flex-direction: column;

        align-items: flex-start;
    }

}
/* ==========================================
   LIVE PAGE
   ========================================== */

.live-content {
    width: 100%;
}


/* ==========================================
   Live Now Section
   ========================================== */

.live-now-section {
    width: 100%;

    margin-bottom: 35px;

    padding-bottom: 30px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.20);
}


/* ==========================================
   Live User Grid
   ========================================== */

.live-user-grid {
    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(6, minmax(120px, 1fr));

    gap: 16px;

    margin-top: 16px;
}


/* ==========================================
   Individual Live User
   ========================================== */

.live-user-card {
    min-width: 0;

    display: flex;
    flex-direction: column;

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

    gap: 8px;

    padding: 16px 10px;

    color: #ffffff;

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

    border:
        2px solid rgba(255, 255, 255, 0.55);

    border-radius: 14px;

    text-align: center;

    text-decoration: none;

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


.live-user-card:hover {
    transform:
        translateY(-3px);

    border-color:
        #ffffff;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.35),
        0 0 13px rgba(255, 50, 70, 0.38);
}


/* ==========================================
   Live Profile Icon
   ========================================== */

.live-profile-wrapper {
    position: relative;

    width: 78px;
    height: 78px;
}


.live-profile-placeholder {
    width: 78px;
    height: 78px;

    display: flex;

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

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #8b5bea,
            #5422b8
        );

    border:
        3px solid #ffffff;

    border-radius: 50%;

    font-size: 27px;
    font-weight: bold;

    box-shadow:
        0 0 12px rgba(116, 64, 216, 0.55);
}


/* ==========================================
   Live Badge
   ========================================== */

.live-now-badge {
    display: flex;

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

    gap: 6px;

    color:
        #ff485d;

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

    letter-spacing: 0.5px;
}


.live-status-dot {
    width: 9px;
    height: 9px;

    display: inline-block;

    background:
        #ff3048;

    border-radius: 50%;

    box-shadow:
        0 0 8px rgba(255, 48, 72, 0.90);
}


.live-platform-name {
    color:
        rgba(255, 255, 255, 0.60);

    font-size: 12px;
}


/* ==========================================
   Empty Live State
   ========================================== */

.live-empty-state {
    width: 100%;

    min-height: 190px;

    display: flex;
    flex-direction: column;

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

    margin-top: 15px;

    padding: 25px;

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

    border:
        2px solid rgba(255, 255, 255, 0.60);

    border-radius: 14px;

    text-align: center;
}


.live-empty-state[hidden] {
    display: none;
}


.live-empty-icon {
    margin-bottom: 12px;

    color:
        rgba(255, 60, 80, 0.55);

    font-size: 40px;
}


.live-empty-state h3 {
    margin-bottom: 7px;

    font-size: 20px;
}


.live-empty-state p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.70);

    font-size: 14px;
}


/* ==========================================
   Live Games Section
   ========================================== */

.live-games-section {
    width: 100%;

    margin-bottom: 28px;
}


.live-game-list-section {
    margin-top: 8px;
}


/* ==========================================
   Twitch Game Section
   ========================================== */

.twitch-game-section {
    width: 100%;

    margin-bottom: 35px;

    padding: 24px;

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

    border:
        3px solid #ffffff;

    border-radius: 16px;

    box-shadow:
        0 0 15px rgba(255, 255, 255, 0.16),
        inset 0 0 25px rgba(0, 0, 0, 0.30);
}


.twitch-game-section[hidden] {
    display: none;
}


/* ==========================================
   Twitch Header
   ========================================== */

.twitch-game-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 22px;

    padding-bottom: 15px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.20);
}


.twitch-label {
    display: inline-block;

    margin-bottom: 5px;

    color:
        #b891ff;

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

    text-transform: uppercase;

    letter-spacing: 1.5px;
}


.twitch-game-header h2 {
    font-size: 26px;
}


/* ==========================================
   Twitch Cards
   ========================================== */

.twitch-game-grid {
    width: 100%;

    display: grid;

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

    gap: 18px;
}


.twitch-game-card {
    min-width: 0;

    overflow: hidden;

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

    border:
        2px solid rgba(255, 255, 255, 0.52);

    border-radius: 14px;

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


.twitch-game-card:hover {
    transform:
        translateY(-3px);

    border-color:
        #ffffff;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.36),
        0 0 12px rgba(145, 71, 255, 0.40);
}


/* ==========================================
   Twitch Thumbnail
   ========================================== */

.twitch-thumbnail-placeholder {
    width: 100%;

    aspect-ratio: 3 / 4;

    display: flex;

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

    padding: 20px;

    color:
        rgba(255, 255, 255, 0.62);

    background:
        linear-gradient(
            145deg,
            rgba(73, 35, 125, 0.85),
            rgba(15, 15, 25, 0.92)
        );

    text-align: center;

    font-size: 14px;
    font-weight: bold;
}


/* ==========================================
   Twitch Information
   ========================================== */

.twitch-game-info {
    padding: 15px;
}


.twitch-game-info h3 {
    margin-bottom: 10px;

    font-size: 17px;

    line-height: 1.35;
}


.twitch-viewer-row {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 10px;

    color:
        rgba(255, 255, 255, 0.86);

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


.viewer-live-dot {
    width: 9px;
    height: 9px;

    flex:
        0 0 9px;

    display: inline-block;

    background:
        #ff3048;

    border-radius: 50%;

    box-shadow:
        0 0 7px rgba(255, 48, 72, 0.70);
}


.twitch-game-info p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.64);

    font-size: 13px;

    line-height: 1.5;
}


/* ==========================================
   Go Live Section
   ========================================== */

.go-live-section {
    width: 100%;

    margin-top: 35px;

    padding-top: 30px;

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


.go-live-panel {
    width: 100%;

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 15px;

    padding: 20px;

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

    border:
        2px solid #ffffff;

    border-radius: 15px;
}


/* ==========================================
   Go Live Profile Preview
   ========================================== */

.go-live-preview {
    flex:
        1 1 320px;

    display: flex;

    align-items: center;

    gap: 14px;
}


.go-live-profile-icon {
    flex:
        0 0 60px;

    width: 60px;
    height: 60px;

    display: flex;

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

    color:
        #ffffff;

    background:
        linear-gradient(
            145deg,
            #8b5bea,
            #5422b8
        );

    border:
        2px solid #ffffff;

    border-radius: 50%;

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


.go-live-preview p {
    max-width: 500px;

    margin: 4px 0 0;

    color:
        rgba(255, 255, 255, 0.65);

    font-size: 13px;

    line-height: 1.4;
}


/* ==========================================
   Go Live Buttons
   ========================================== */

.go-live-button,
.go-live-submit-button {
    padding:
        11px 22px;

    color:
        #ffffff;

    background:
        linear-gradient(
            145deg,
            #ff3d57,
            #c51f3b
        );

    border:
        1px solid rgba(255, 255, 255, 0.72);

    border-radius: 9px;

    font-size: 15px;
    font-weight: bold;

    cursor: pointer;

    transition:
        transform 0.20s ease,
        box-shadow 0.20s ease,
        filter 0.20s ease;
}


.go-live-button:hover,
.go-live-submit-button:hover {
    transform:
        translateY(-2px);

    filter:
        brightness(1.08);

    box-shadow:
        0 0 14px rgba(255, 48, 72, 0.55);
}


.end-live-button {
    padding:
        11px 22px;

    color:
        #ffffff;

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

    border:
        1px solid rgba(255, 255, 255, 0.55);

    border-radius: 9px;

    font-size: 15px;
    font-weight: bold;

    cursor: pointer;

    transition:
        background-color 0.20s ease,
        transform 0.20s ease;
}


.end-live-button:hover {
    background:
        rgba(255, 255, 255, 0.22);

    transform:
        translateY(-2px);
}


.end-live-button[hidden] {
    display: none;
}


.go-live-status {
    flex:
        0 0 100%;

    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.75);

    font-size: 13px;
}


/* ==========================================
   Go Live Modal
   ========================================== */

body.modal-open {
    overflow: hidden;
}


.go-live-modal {
    position: fixed;

    inset: 0;

    display: flex;

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

    padding: 20px;

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

    backdrop-filter:
        blur(7px);

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

    z-index:
        12000;
}


.go-live-modal[hidden] {
    display: none;
}


.go-live-modal-card {
    width: 100%;

    max-width: 560px;

    padding: 24px;

    color:
        #ffffff;

    background:
        rgba(18, 18, 28, 0.97);

    border:
        2px solid #ffffff;

    border-radius: 16px;

    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.60),
        0 0 20px rgba(116, 64, 216, 0.32);
}


.go-live-modal-header {
    display: flex;

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

    gap: 20px;

    margin-bottom: 12px;
}


.go-live-modal-header h2 {
    font-size: 24px;
}


.go-live-modal-close {
    width: 38px;
    height: 38px;

    flex:
        0 0 38px;

    color:
        #ffffff;

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

    border:
        1px solid rgba(255, 255, 255, 0.38);

    border-radius: 50%;

    font-size: 23px;

    cursor: pointer;
}


.go-live-modal-description {
    max-width: none;

    margin:
        0 0 20px;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 14px;
}


/* ==========================================
   Go Live Form
   ========================================== */

.go-live-form-group {
    width: 100%;

    margin-bottom: 18px;
}


.go-live-form-group label {
    display: block;

    margin-bottom: 7px;

    font-size: 14px;
    font-weight: bold;
}


.go-live-form-group input {
    width: 100%;

    padding:
        12px 14px;

    color:
        #ffffff;

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

    border:
        1px solid rgba(255, 255, 255, 0.45);

    border-radius: 8px;

    outline: none;

    font-size: 15px;
}


.go-live-form-group input:focus {
    border-color:
        #ffffff;

    box-shadow:
        0 0 10px rgba(255, 48, 72, 0.38);
}


.go-live-form-message {
    min-height: 18px;

    max-width: none;

    margin:
        12px 0 0;

    color:
        #ff8b99;

    font-size: 13px;
}


/* ==========================================
   Live Keyboard Focus
   ========================================== */

.live-user-card:focus-visible,
.live-category-button:focus-visible,
.go-live-button:focus-visible,
.end-live-button:focus-visible,
.go-live-submit-button:focus-visible,
.go-live-modal-close:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset:
        3px;
}


/* ==========================================
   Live — Smaller Desktop
   ========================================== */

@media (max-width: 1300px) {

    .live-user-grid {
        grid-template-columns:
            repeat(4, minmax(120px, 1fr));
    }


    .twitch-game-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* ==========================================
   Live — Tablet
   ========================================== */

@media (max-width: 900px) {

    .live-user-grid {
        grid-template-columns:
            repeat(3, minmax(110px, 1fr));
    }


    .twitch-game-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ==========================================
   Live — Mobile
   ========================================== */

@media (max-width: 650px) {

    .live-user-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .twitch-game-grid {
        grid-template-columns:
            1fr;
    }


    .twitch-game-section {
        padding:
            16px;
    }


    .go-live-panel {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .go-live-preview {
        flex:
            0 0 auto;
    }


    .go-live-button,
    .end-live-button {
        width:
            100%;
    }


    .go-live-modal-card {
        padding:
            18px;
    }

}


/* ==========================================
   Live — Very Small Screens
   ========================================== */

@media (max-width: 420px) {

    .live-user-grid {
        grid-template-columns:
            1fr 1fr;

        gap:
            10px;
    }


    .live-profile-placeholder {
        width:
            68px;

        height:
            68px;
    }


    .live-profile-wrapper {
        width:
            68px;

        height:
            68px;
    }


    .go-live-preview {
        flex-direction:
            column;

        align-items:
            flex-start;
    }

}
/* ==========================================
   BUSINESS PAGE
   ========================================== */

.business-content {
    width: 100%;
}


/* ==========================================
   Business Tabs
   ========================================== */

.business-tabs {
    width: 100%;

    display: grid;

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

    gap: 12px;

    margin-bottom: 28px;
}


.business-tab {
    min-height: 58px;

    padding: 12px 16px;

    color: #ffffff;

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

    border:
        2px solid
        rgba(255, 255, 255, 0.50);

    border-radius: 12px;

    font-size: 15px;
    font-weight: bold;

    cursor: pointer;

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


.business-tab:hover {
    transform:
        translateY(-2px);

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

    border-color:
        #ffffff;

    box-shadow:
        0 5px 15px
        rgba(0, 0, 0, 0.30);
}


.business-tab.active {
    background:
        linear-gradient(
            145deg,
            rgba(116, 64, 216, 0.95),
            rgba(0, 125, 210, 0.85)
        );

    border-color:
        #ffffff;

    box-shadow:
        0 0 15px
        rgba(0, 190, 255, 0.50);
}


/* ==========================================
   Business Sections
   ========================================== */

.business-section {
    width: 100%;

    padding: 24px;

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

    border:
        3px solid #ffffff;

    border-radius: 16px;

    box-shadow:
        0 0 15px
        rgba(255, 255, 255, 0.14),
        inset 0 0 25px
        rgba(0, 0, 0, 0.30);
}


.business-section[hidden] {
    display: none;
}


/* ==========================================
   Business Section Heading
   ========================================== */

.business-section-heading {
    margin-bottom: 22px;

    padding-bottom: 15px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.20);
}


.business-section-heading h2 {
    margin-bottom: 6px;

    color: #ffffff;

    font-size: 25px;
}


.business-section-heading p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.70);

    font-size: 14px;

    line-height: 1.5;
}


/* ==========================================
   Text-Only Business Panels
   ========================================== */

.business-text-panel {
    width: 100%;
}


.business-text-panel h3 {
    margin-bottom: 15px;

    color: #ffffff;

    font-size: 20px;
}


.business-text-panel p {
    max-width: none;

    margin:
        0 0 16px;

    color:
        rgba(255, 255, 255, 0.86);

    font-size: 15px;

    line-height: 1.8;
}


.business-text-panel p:last-child {
    margin-bottom: 0;
}


/* ==========================================
   Mission Statement Layout
   ========================================== */

.mission-layout {
    width: 100%;

    display: grid;

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

    gap: 28px;

    align-items: start;
}


/* ==========================================
   Mission Text
   ========================================== */

.mission-text {
    min-width: 0;
}


.mission-text h3 {
    margin-bottom: 15px;

    color: #ffffff;

    font-size: 21px;
}


.mission-text p {
    max-width: none;

    margin:
        0 0 17px;

    color:
        rgba(255, 255, 255, 0.86);

    font-size: 15px;

    line-height: 1.8;
}


.mission-text p:last-child {
    margin-bottom: 0;
}


/* ==========================================
   Mission Images
   ========================================== */

.mission-images {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 16px;
}


.mission-image-placeholder {
    width: 100%;

    aspect-ratio:
        16 / 10;

    display: flex;

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

    padding: 20px;

    color:
        rgba(255, 255, 255, 0.70);

    background:
        linear-gradient(
            145deg,
            rgba(45, 38, 70, 0.90),
            rgba(15, 15, 25, 0.92)
        );

    border:
        2px solid
        rgba(255, 255, 255, 0.70);

    border-radius: 13px;

    text-align: center;

    font-size: 14px;
    font-weight: bold;

    box-shadow:
        inset 0 0 18px
        rgba(0, 0, 0, 0.35);
}


/* ==========================================
   Business Keyboard Focus
   ========================================== */

.business-tab:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset:
        3px;
}


/* ==========================================
   Business Tablet Layout
   ========================================== */

@media (max-width: 1000px) {

    .mission-layout {
        grid-template-columns:
            minmax(0, 1fr) 280px;
    }

}


/* ==========================================
   Business Mobile Layout
   ========================================== */

@media (max-width: 750px) {

    .mission-layout {
        grid-template-columns:
            1fr;
    }


    .mission-images {
        display: grid;

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

}


/* ==========================================
   Business Small Screens
   ========================================== */

@media (max-width: 650px) {

    .business-tabs {
        grid-template-columns:
            1fr;
    }


    .business-section {
        padding: 16px;
    }


    .business-section-heading h2 {
        font-size: 22px;
    }

}


/* ==========================================
   Business Very Small Screens
   ========================================== */

@media (max-width: 450px) {

    .mission-images {
        grid-template-columns:
            1fr;
    }

}

/* ==========================================
   Decorative Sidebar Edge / Tab
   ========================================== */

/*
 * Allows the decorative sidebar image to extend
 * beyond the right edge of the sidebar.
 *
 * Individual sidebar links still keep their own
 * overflow rules, so the existing layout remains
 * intact.
 */
.sidebar {
    overflow: visible;
}


/*
 * Keeps the real sidebar controls and text above
 * the decorative artwork where the two overlap.
 */
.sidebar > .sidebar-header,
.sidebar > .sidebar-menu,
.sidebar > .sidebar-bottom {
    position: relative;
    z-index: 2;
}


/*
 * Purple / blue decorative edge.
 *
 * Place "sidebar design.png" in the same folder
 * as style.css.
 */
.sidebar::after {
    content: "";

    position: absolute;

    top: 0;
    right: -58px;

    width: 92px;
    height: 100%;

    background-image:
        url("sidebar design.png");

    background-repeat: no-repeat;
    background-position: center right;
    background-size: 100% 100%;

    pointer-events: none;

    z-index: 1;

    filter:
        drop-shadow(
            5px 0 9px
            rgba(111, 45, 255, 0.30)
        );

    transition:
        opacity var(--sidebar-transition);
}


/* ==========================================
   Decorative Sidebar Tab — Mobile
   ========================================== */

@media (max-width: 900px) {

    /*
     * Keep the frame attached to the sidebar
     * when it slides in on smaller displays,
     * but make it slightly narrower so it does
     * not consume too much screen space.
     */
    .sidebar::after {
        right: -48px;

        width: 76px;

        background-size:
            100% 100%;
    }

}


/* ==========================================
   Decorative Sidebar Tab — Very Small Screens
   ========================================== */

@media (max-width: 420px) {

    .sidebar::after {
        right: -40px;

        width: 66px;
    }

}
/* ==========================================
   LOGIN PAGE - FINAL DESIGN
   ========================================== */

.login-page {
    min-height: 100vh;

    margin: 0;

    display: flex;

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

    overflow-x: hidden;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: #ffffff;

    background-color: #05030c;
}


/* ==========================================
   Login Background
   ========================================== */

.login-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size:
        cover;

    background-position:
        center;

    background-repeat:
        no-repeat;

    opacity:
        0.58;

    z-index:
        -2;
}


.login-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.16),
            rgba(5, 3, 12, 0.55) 52%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index:
        -1;
}


/* ==========================================
   Login Shell
   ========================================== */

.login-shell {
    width: 100%;

    min-height: 100vh;

    display: flex;
    flex-direction: column;

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

    gap: 26px;

    padding: 50px 20px;
}


/* ==========================================
   Login Card
   ========================================== */

.login-card {
    width: min(
        620px,
        92vw
    );

    padding:
        38px 46px 34px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius:
        28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter:
        blur(18px);

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


/* ==========================================
   Brand / Logo
   ========================================== */

.login-brand {
    display: flex;
    flex-direction: column;

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

    margin-bottom:
        22px;
}


.login-logo-mark {
    width:
        82px;

    height:
        82px;

    display: flex;

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

    margin-bottom:
        8px;

    color:
        #ffffff;

    background:
        linear-gradient(
            145deg,
            #6b2ce9,
            #221334
        );

    border:
        4px solid
        #8348ff;

    border-radius:
        22px;

    box-shadow:
        0 0 20px
        rgba(126, 70, 255, 0.70);

    font-size:
        40px;

    font-weight:
        900;
}


.login-logo-text {
    font-size:
        28px;

    font-weight:
        900;

    letter-spacing:
        2px;
}


/* ==========================================
   Heading
   ========================================== */

.login-heading {
    text-align:
        center;

    margin-bottom:
        30px;
}


.login-heading h1 {
    margin:
        0;

    color:
        #ffffff;

    font-size:
        clamp(
            34px,
            5vw,
            50px
        );

    font-weight:
        900;

    text-transform:
        uppercase;

    letter-spacing:
        2px;

    text-shadow:
        0 0 16px
        rgba(151, 83, 255, 0.85);
}


.login-heading-line {
    width:
        82%;

    max-width:
        390px;

    height:
        2px;

    margin:
        18px auto 16px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #8f45ff,
            transparent
        );

    box-shadow:
        0 0 12px
        rgba(143, 69, 255, 0.85);
}


.login-heading p {
    max-width:
        none;

    margin:
        0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size:
        16px;
}


/* ==========================================
   Login Message
   ========================================== */

.login-message {
    margin-bottom:
        20px;

    padding:
        12px 14px;

    color:
        #ffffff;

    background:
        rgba(170, 35, 65, 0.48);

    border:
        1px solid
        rgba(255, 120, 150, 0.68);

    border-radius:
        10px;

    text-align:
        center;

    font-size:
        14px;
}


/* ==========================================
   Login Form
   ========================================== */

.login-form {
    width:
        100%;
}


.login-field {
    margin-bottom:
        22px;
}


.login-field label {
    display:
        block;

    margin-bottom:
        8px;

    color:
        #ffffff;

    font-size:
        14px;

    font-weight:
        800;

    text-transform:
        uppercase;

    letter-spacing:
        0.7px;
}


/* ==========================================
   Login Input
   ========================================== */

.login-input-wrapper {
    position:
        relative;

    width:
        100%;
}


.login-input-icon {
    position:
        absolute;

    top:
        50%;

    left:
        18px;

    transform:
        translateY(-50%);

    color:
        #8e46ff;

    font-size:
        18px;

    z-index:
        2;

    pointer-events:
        none;
}


.login-input-wrapper input {
    width:
        100%;

    height:
        60px;

    padding:
        0 18px 0 54px;

    color:
        #ffffff;

    background:
        rgba(9, 8, 20, 0.76);

    border:
        2px solid
        rgba(150, 130, 190, 0.48);

    border-radius:
        13px;

    outline:
        none;

    font-size:
        16px;

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


.login-input-wrapper input::placeholder {
    color:
        rgba(255, 255, 255, 0.48);
}


.login-input-wrapper input:hover {
    border-color:
        rgba(177, 134, 255, 0.70);
}


.login-input-wrapper input:focus {
    background:
        rgba(11, 9, 25, 0.92);

    border-color:
        #9a56ff;

    box-shadow:
        0 0 0 3px
        rgba(154, 86, 255, 0.14),

        0 0 15px
        rgba(126, 70, 255, 0.35);
}


/* ==========================================
   Login Button
   ========================================== */

.login-button {
    width:
        100%;

    min-height:
        62px;

    margin-top:
        8px;

    color:
        #ffffff;

    background:
        linear-gradient(
            100deg,
            #c020e8 0%,
            #7a3df0 50%,
            #4197ff 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.76);

    border-radius:
        14px;

    box-shadow:
        0 0 20px
        rgba(130, 68, 255, 0.50);

    font-size:
        18px;

    font-weight:
        900;

    text-transform:
        uppercase;

    letter-spacing:
        0.8px;

    cursor:
        pointer;

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


.login-button:hover {
    transform:
        translateY(-2px);

    filter:
        brightness(1.12);

    box-shadow:
        0 0 28px
        rgba(136, 75, 255, 0.70);
}


.login-button:active {
    transform:
        translateY(1px);
}


/* ==========================================
   OR Divider
   ========================================== */

.login-divider {
    width:
        100%;

    display:
        grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items:
        center;

    gap:
        14px;

    margin:
        30px 0 20px;
}


.login-divider span {
    height:
        1px;

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


.login-divider strong {
    color:
        rgba(255, 255, 255, 0.60);

    font-size:
        13px;
}


/* ==========================================
   Create Account
   ========================================== */

.login-create-account {
    text-align:
        center;
}


.login-create-account p {
    max-width:
        none;

    margin:
        0 0 9px;

    color:
        rgba(255, 255, 255, 0.84);

    font-size:
        15px;
}


.login-create-link {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    color:
        #9d61ff;

    text-decoration:
        none;

    font-size:
        18px;

    font-weight:
        900;

    text-transform:
        uppercase;

    letter-spacing:
        0.6px;

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


.login-create-link span {
    font-size:
        28px;

    line-height:
        1;
}


.login-create-link:hover {
    color:
        #c399ff;

    text-shadow:
        0 0 12px
        rgba(157, 97, 255, 0.78);

    transform:
        translateX(2px);
}


/* ==========================================
   Return Home
   ========================================== */

.login-return-home {
    display:
        inline-flex;

    align-items:
        center;

    color:
        #9c62ff;

    text-decoration:
        none;

    font-size:
        17px;

    font-weight:
        800;

    text-transform:
        uppercase;

    letter-spacing:
        0.7px;

    transition:
        color 0.2s ease,
        text-shadow 0.2s ease;
}


.login-return-home:hover {
    color:
        #c8a5ff;

    text-shadow:
        0 0 12px
        rgba(156, 98, 255, 0.75);
}


/* ==========================================
   Keyboard Focus
   ========================================== */

.login-button:focus-visible,
.login-create-link:focus-visible,
.login-return-home:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset:
        4px;
}


/* ==========================================
   Login Tablet
   ========================================== */

@media (max-width: 760px) {

    .login-card {
        padding:
            32px 30px 30px;

        border-radius:
            22px;
    }


    .login-logo-mark {
        width:
            70px;

        height:
            70px;

        font-size:
            34px;
    }


    .login-logo-text {
        font-size:
            24px;
    }

}


/* ==========================================
   Login Mobile
   ========================================== */

@media (max-width: 520px) {

    .login-shell {
        justify-content:
            flex-start;

        padding:
            28px 14px;
    }


    .login-card {
        width:
            100%;

        padding:
            26px 18px 24px;

        border-radius:
            18px;
    }


    .login-heading h1 {
        font-size:
            31px;
    }


    .login-heading p {
        font-size:
            14px;
    }


    .login-input-wrapper input {
        height:
            56px;

        font-size:
            14px;
    }


    .login-button {
        min-height:
            58px;

        font-size:
            16px;
    }


    .login-return-home {
        font-size:
            14px;
    }

}
/* ==========================================
   REGISTER PAGE
   ========================================== */

.register-page {
    min-height: 100vh;

    margin: 0;

    display: flex;

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

    overflow-x: hidden;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: #ffffff;

    background-color: #05030c;
}


/* ==========================================
   Register Background
   ========================================== */

.register-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size: cover;

    background-position: center;

    background-repeat: no-repeat;

    opacity: 0.58;

    z-index: -2;
}


.register-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.16),
            rgba(5, 3, 12, 0.55) 52%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index: -1;
}


/* ==========================================
   Register Shell
   ========================================== */

.register-shell {
    width: 100%;

    min-height: 100vh;

    display: flex;

    flex-direction: column;

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

    gap: 26px;

    padding: 50px 20px;
}


/* ==========================================
   Register Card
   ========================================== */

.register-card {
    width: min(
        680px,
        92vw
    );

    padding:
        38px 46px 34px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius: 28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter:
        blur(18px);

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


/* ==========================================
   Register Brand
   ========================================== */

.register-brand {
    display: flex;

    flex-direction: column;

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

    margin-bottom: 22px;
}


.register-logo-mark {
    width: 82px;
    height: 82px;

    display: flex;

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

    margin-bottom: 8px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #6b2ce9,
            #221334
        );

    border:
        4px solid
        #8348ff;

    border-radius: 22px;

    box-shadow:
        0 0 20px
        rgba(126, 70, 255, 0.70);

    font-size: 40px;

    font-weight: 900;
}


.register-logo-text {
    font-size: 28px;

    font-weight: 900;

    letter-spacing: 2px;
}


/* ==========================================
   Register Heading
   ========================================== */

.register-heading {
    text-align: center;

    margin-bottom: 30px;
}


.register-heading h1 {
    margin: 0;

    color: #ffffff;

    font-size:
        clamp(
            32px,
            5vw,
            46px
        );

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 2px;

    text-shadow:
        0 0 16px
        rgba(151, 83, 255, 0.85);
}


.register-heading-line {
    width: 82%;

    max-width: 390px;

    height: 2px;

    margin:
        18px auto 16px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #8f45ff,
            transparent
        );

    box-shadow:
        0 0 12px
        rgba(143, 69, 255, 0.85);
}


.register-heading p {
    max-width: none;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size: 16px;
}


/* ==========================================
   Registration Message
   ========================================== */

.register-message {
    margin-bottom: 20px;

    padding:
        12px 14px;

    border-radius: 10px;

    text-align: center;

    font-size: 14px;
}


.register-message-error {
    color: #ffffff;

    background:
        rgba(170, 35, 65, 0.48);

    border:
        1px solid
        rgba(255, 120, 150, 0.68);
}


/* ==========================================
   Register Form
   ========================================== */

.register-form {
    width: 100%;
}


.register-field {
    margin-bottom: 20px;
}


.register-field label {
    display: block;

    margin-bottom: 8px;

    color: #ffffff;

    font-size: 14px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.7px;
}


/* ==========================================
   Register Inputs
   ========================================== */

.register-input-wrapper {
    position: relative;

    width: 100%;
}


.register-input-icon {
    position: absolute;

    top: 50%;
    left: 18px;

    transform:
        translateY(-50%);

    width: 20px;

    color: #8e46ff;

    font-size: 17px;

    font-weight: bold;

    text-align: center;

    z-index: 2;

    pointer-events: none;
}


.register-input-wrapper input {
    width: 100%;

    height: 58px;

    padding:
        0 18px 0 54px;

    color: #ffffff;

    background:
        rgba(9, 8, 20, 0.76);

    border:
        2px solid
        rgba(150, 130, 190, 0.48);

    border-radius: 13px;

    outline: none;

    font-size: 16px;

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


.register-input-wrapper input::placeholder {
    color:
        rgba(255, 255, 255, 0.48);
}


.register-input-wrapper input:hover {
    border-color:
        rgba(177, 134, 255, 0.70);
}


.register-input-wrapper input:focus {
    background:
        rgba(11, 9, 25, 0.92);

    border-color:
        #9a56ff;

    box-shadow:
        0 0 0 3px
        rgba(154, 86, 255, 0.14),

        0 0 15px
        rgba(126, 70, 255, 0.35);
}


/* ==========================================
   Create Account Button
   ========================================== */

.register-button {
    width: 100%;

    min-height: 62px;

    margin-top: 8px;

    color: #ffffff;

    background:
        linear-gradient(
            100deg,
            #c020e8 0%,
            #7a3df0 50%,
            #4197ff 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.76);

    border-radius: 14px;

    box-shadow:
        0 0 20px
        rgba(130, 68, 255, 0.50);

    font-size: 18px;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 0.8px;

    cursor: pointer;

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


.register-button:hover {
    transform:
        translateY(-2px);

    filter:
        brightness(1.12);

    box-shadow:
        0 0 28px
        rgba(136, 75, 255, 0.70);
}


.register-button:active {
    transform:
        translateY(1px);
}


/* ==========================================
   Register Divider
   ========================================== */

.register-divider {
    width: 100%;

    display: grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items: center;

    gap: 14px;

    margin:
        30px 0 20px;
}


.register-divider span {
    height: 1px;

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


.register-divider strong {
    color:
        rgba(255, 255, 255, 0.60);

    font-size: 13px;
}


/* ==========================================
   Existing Account
   ========================================== */

.register-login-area {
    text-align: center;
}


.register-login-area p {
    max-width: none;

    margin:
        0 0 9px;

    color:
        rgba(255, 255, 255, 0.84);

    font-size: 15px;
}


.register-login-link {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #9d61ff;

    text-decoration: none;

    font-size: 18px;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 0.6px;

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


.register-login-link span {
    font-size: 28px;

    line-height: 1;
}


.register-login-link:hover {
    color: #c399ff;

    text-shadow:
        0 0 12px
        rgba(157, 97, 255, 0.78);

    transform:
        translateX(2px);
}


/* ==========================================
   Register Return Home
   ========================================== */

.register-return-home {
    display: inline-flex;

    align-items: center;

    color: #9c62ff;

    text-decoration: none;

    font-size: 17px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.7px;

    transition:
        color 0.2s ease,
        text-shadow 0.2s ease;
}


.register-return-home:hover {
    color: #c8a5ff;

    text-shadow:
        0 0 12px
        rgba(156, 98, 255, 0.75);
}


/* ==========================================
   Register Focus
   ========================================== */

.register-button:focus-visible,
.register-login-link:focus-visible,
.register-return-home:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset:
        4px;
}


/* ==========================================
   Register Tablet
   ========================================== */

@media (max-width: 760px) {

    .register-card {
        padding:
            32px 30px 30px;

        border-radius: 22px;
    }


    .register-logo-mark {
        width: 70px;

        height: 70px;

        font-size: 34px;
    }


    .register-logo-text {
        font-size: 24px;
    }

}


/* ==========================================
   Register Mobile
   ========================================== */

@media (max-width: 520px) {

    .register-shell {
        justify-content:
            flex-start;

        padding:
            28px 14px;
    }


    .register-card {
        width: 100%;

        padding:
            26px 18px 24px;

        border-radius: 18px;
    }


    .register-heading h1 {
        font-size: 30px;
    }


    .register-heading p {
        font-size: 14px;
    }


    .register-input-wrapper input {
        height: 54px;

        font-size: 14px;
    }


    .register-button {
        min-height: 58px;

        font-size: 16px;
    }


    .register-return-home {
        font-size: 14px;
    }

}
/* ==========================================
   REGISTRATION SUCCESS
   ========================================== */

.register-message-success {
    color: #ffffff;

    background:
        rgba(35, 150, 90, 0.40);

    border:
        1px solid
        rgba(100, 255, 165, 0.65);

    box-shadow:
        0 0 12px
        rgba(70, 220, 140, 0.20);
}


.register-success-area {
    display: flex;
    flex-direction: column;

    align-items: center;

    gap: 14px;

    margin-top: 22px;

    text-align: center;
}


.register-success-icon {
    width: 72px;
    height: 72px;

    display: flex;

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

    color: #ffffff;

    background:
        rgba(35, 170, 95, 0.75);

    border:
        2px solid
        rgba(130, 255, 185, 0.85);

    border-radius: 50%;

    box-shadow:
        0 0 20px
        rgba(70, 220, 140, 0.40);

    font-size: 36px;
    font-weight: bold;
}


.register-success-area h2 {
    margin: 0;

    color: #ffffff;

    font-size: 24px;
}


.register-success-area p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.82);

    line-height: 1.5;
}


.register-success-area .register-button {
    display: block;

    width: 100%;

    margin-top: 10px;

    text-align: center;
    text-decoration: none;
}
/* ==========================================
   Sidebar Bottom Authentication
   ========================================== */

.sidebar-auth-link {
    margin-top: 8px;
}
/* ==========================================
   PROFILE PAGE
   ========================================== */

.profile-page {
    min-height: 100vh;

    margin: 0;

    color: #ffffff;

    background-color: #05030c;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


.profile-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    opacity: 0.58;

    z-index: -2;
}


.profile-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.15),
            rgba(5, 3, 12, 0.55) 55%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index: -1;
}


/* ==========================================
   Profile Layout
   ========================================== */

.profile-shell {
    width: 100%;

    min-height: 100vh;

    display: flex;
    flex-direction: column;

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

    gap: 24px;

    padding: 50px 20px;
}


/* ==========================================
   Profile Card
   ========================================== */

.profile-card {
    width:
        min(
            720px,
            94vw
        );

    padding:
        38px 44px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius: 28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter: blur(18px);

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


/* ==========================================
   Profile Header
   ========================================== */

.profile-header {
    display: flex;
    flex-direction: column;

    align-items: center;

    text-align: center;

    margin-bottom: 28px;
}


.profile-avatar {
    width: 150px;
    height: 150px;

    display: flex;

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

    overflow: hidden;

    margin-bottom: 18px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #7e43e7,
            #32145d
        );

    border:
        4px solid
        rgba(186, 130, 255, 0.95);

    border-radius: 50%;

    box-shadow:
        0 0 26px
        rgba(137, 70, 255, 0.60);

    font-size: 60px;
    font-weight: 900;
}


.profile-avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


.profile-header h1 {
    margin: 0 0 4px;

    color: #ffffff;

    font-size: 34px;

    text-shadow:
        0 0 12px
        rgba(150, 90, 255, 0.70);
}


.profile-username {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.66);

    font-size: 17px;
}


/* ==========================================
   Profile Messages
   ========================================== */

.profile-message {
    margin-bottom: 22px;

    padding:
        12px 15px;

    border-radius: 10px;

    text-align: center;

    font-size: 14px;
}


.profile-message-success {
    background:
        rgba(35, 150, 90, 0.40);

    border:
        1px solid
        rgba(100, 255, 165, 0.65);
}


.profile-message-error {
    background:
        rgba(170, 35, 65, 0.48);

    border:
        1px solid
        rgba(255, 120, 150, 0.68);
}


/* ==========================================
   Profile Information
   ========================================== */

.profile-information {
    width: 100%;

    overflow: hidden;

    margin-bottom: 28px;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius: 14px;
}


.profile-info-row {
    display: grid;

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

    gap: 20px;

    padding:
        16px 18px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.10);
}


.profile-info-row:last-child {
    border-bottom: none;
}


.profile-info-label {
    color:
        rgba(255, 255, 255, 0.58);

    font-size: 13px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.7px;
}


.profile-info-value {
    color: #ffffff;

    word-break: break-word;

    font-size: 15px;
}


/* ==========================================
   Profile Upload Area
   ========================================== */

.profile-upload-section {
    padding-top: 24px;

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


.profile-upload-section h2 {
    margin:
        0 0 7px;

    font-size: 21px;
}


.profile-upload-section p {
    margin:
        0 0 18px;

    color:
        rgba(255, 255, 255, 0.67);

    font-size: 14px;
}


.profile-upload-form {
    display: flex;

    flex-direction: column;

    gap: 14px;
}


.profile-upload-form input[type="file"] {
    width: 100%;

    color:
        rgba(255, 255, 255, 0.78);

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

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

    border-radius: 10px;

    padding: 11px;
}


.profile-file-label {
    display: none;
}


.profile-upload-button {
    width: 100%;

    min-height: 54px;

    color: #ffffff;

    background:
        linear-gradient(
            100deg,
            #c020e8 0%,
            #7a3df0 50%,
            #4197ff 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.70);

    border-radius: 12px;

    font-size: 15px;
    font-weight: 900;

    text-transform: uppercase;

    cursor: pointer;

    box-shadow:
        0 0 18px
        rgba(130, 68, 255, 0.42);

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


.profile-upload-button:hover {
    transform:
        translateY(-2px);

    filter:
        brightness(1.10);

    box-shadow:
        0 0 26px
        rgba(136, 75, 255, 0.65);
}


/* ==========================================
   Profile Navigation
   ========================================== */

.profile-navigation {
    display: flex;

    align-items: center;

    gap: 26px;
}


.profile-home-link,
.profile-signout-link {
    color: #a16aff;

    text-decoration: none;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.6px;
}


.profile-home-link:hover,
.profile-signout-link:hover {
    color: #cfb0ff;

    text-shadow:
        0 0 10px
        rgba(160, 100, 255, 0.65);
}


/* ==========================================
   Profile Mobile
   ========================================== */

@media (max-width: 620px) {

    .profile-shell {
        justify-content:
            flex-start;

        padding:
            28px 14px;
    }


    .profile-card {
        padding:
            28px 18px;

        border-radius: 20px;
    }


    .profile-avatar {
        width: 120px;
        height: 120px;

        font-size: 48px;
    }


    .profile-header h1 {
        font-size: 28px;
    }


    .profile-info-row {
        grid-template-columns: 1fr;

        gap: 5px;
    }


    .profile-navigation {
        flex-direction: column;

        gap: 14px;
    }

}
/* ==========================================
   PROFILE PAGE - BIO SECTION
   ========================================== */

.profile-bio-section {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.profile-bio-section h2 {
    margin: 0 0 6px;
    font-size: 1.35rem;
    color: #ffffff;
}

.profile-bio-section > p {
    margin: 0 0 16px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.5;
}


/* Bio form */

.profile-bio-form {
    width: 100%;
}


/* Large Bio text area */

.profile-bio-form textarea {
    display: block;
    width: 100%;
    min-height: 170px;

    box-sizing: border-box;

    padding: 16px 18px;

    border: 1px solid rgba(175, 120, 255, 0.45);
    border-radius: 12px;

    background:
        rgba(5, 5, 20, 0.78);

    color: #ffffff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 1rem;
    line-height: 1.5;

    resize: vertical;

    outline: none;

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


/* Placeholder text */

.profile-bio-form textarea::placeholder {
    color:
        rgba(255, 255, 255, 0.42);
}


/* Bio box when selected */

.profile-bio-form textarea:focus {
    border-color:
        rgba(179, 92, 255, 0.95);

    background:
        rgba(10, 7, 28, 0.92);

    box-shadow:
        0 0 0 3px
        rgba(139, 65, 255, 0.15),
        0 0 18px
        rgba(139, 65, 255, 0.20);
}


/* Character limit message */

.profile-bio-limit {
    margin-top: 7px;
    margin-bottom: 12px;

    text-align: right;

    font-size: 0.82rem;

    color:
        rgba(255, 255, 255, 0.55);
}


/* ==========================================
   PROFILE IMAGE REQUIREMENTS
   ========================================== */

.profile-image-requirements {
    margin: 14px 0 18px;

    padding: 14px 16px;

    border:
        1px solid
        rgba(145, 91, 255, 0.30);

    border-radius: 10px;

    background:
        rgba(95, 42, 170, 0.10);
}

.profile-image-requirements strong {
    display: block;

    margin-bottom: 8px;

    color: #ffffff;

    font-size: 0.95rem;
}

.profile-image-requirements p {
    position: relative;

    margin: 5px 0;

    padding-left: 17px;

    color:
        rgba(255, 255, 255, 0.70);

    font-size: 0.85rem;

    line-height: 1.45;
}


/* Small purple bullet */

.profile-image-requirements p::before {
    content: "•";

    position: absolute;

    left: 2px;

    color: #a75cff;
}


/* ==========================================
   PROFILE PAGE - MOBILE
   ========================================== */

@media (max-width: 600px) {

    .profile-bio-form textarea {
        min-height: 150px;
        padding: 14px;
        font-size: 0.95rem;
    }

}
/* ==========================================
   Sidebar Profile Image
   ========================================== */

.profile-sidebar-icon {
    overflow: hidden;
}

.sidebar-profile-image {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    border-radius: 50%;
}
/* ==========================================
   ACCOUNT SETTINGS PAGE
   ========================================== */

.account-settings-page {
    min-height: 100vh;

    margin: 0;

    color: #ffffff;

    background-color: #05030c;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


.account-settings-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    opacity: 0.58;

    z-index: -2;
}


.account-settings-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.15),
            rgba(5, 3, 12, 0.55) 55%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index: -1;
}


/* ==========================================
   Account Settings Layout
   ========================================== */

.account-settings-shell {
    width: 100%;

    min-height: 100vh;

    display: flex;
    flex-direction: column;

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

    gap: 24px;

    padding: 50px 20px;
}


/* ==========================================
   Account Settings Card
   ========================================== */

.account-settings-card {
    width:
        min(
            760px,
            94vw
        );

    padding:
        38px 44px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius: 28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter: blur(18px);

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


/* ==========================================
   Account Settings Heading
   ========================================== */

.account-settings-heading {
    margin-bottom: 28px;

    text-align: center;
}


.account-settings-heading h1 {
    margin: 0 0 8px;

    font-size: 34px;

    color: #ffffff;

    text-shadow:
        0 0 12px
        rgba(150, 90, 255, 0.70);
}


.account-settings-heading p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.68);

    font-size: 15px;
}


/* ==========================================
   Status Messages
   ========================================== */

.account-settings-message {
    margin-bottom: 24px;

    padding:
        12px 15px;

    border-radius: 10px;

    text-align: center;

    font-size: 14px;
}


.account-settings-message-success {
    background:
        rgba(35, 150, 90, 0.40);

    border:
        1px solid
        rgba(100, 255, 165, 0.65);
}


.account-settings-message-error {
    background:
        rgba(170, 35, 65, 0.48);

    border:
        1px solid
        rgba(255, 120, 150, 0.68);
}


/* ==========================================
   Settings Sections
   ========================================== */

.account-settings-section {
    margin-top: 26px;

    padding-top: 24px;

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


.account-settings-section:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}


.account-settings-section h2 {
    margin:
        0 0 14px;

    font-size: 22px;
}


.account-settings-description {
    margin:
        -4px 0 18px;

    color:
        rgba(255, 255, 255, 0.66);

    line-height: 1.5;

    font-size: 14px;
}


/* ==========================================
   Account Overview
   ========================================== */

.account-settings-information {
    width: 100%;

    overflow: hidden;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius: 14px;
}


.account-settings-row {
    display: grid;

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

    gap: 20px;

    padding:
        16px 18px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.10);
}


.account-settings-row:last-child {
    border-bottom: none;
}


.account-settings-label {
    color:
        rgba(255, 255, 255, 0.58);

    font-size: 13px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.7px;
}


.account-settings-value {
    color: #ffffff;

    word-break: break-word;
}


/* ==========================================
   Password Form
   ========================================== */

.account-password-form {
    width: 100%;
}


.account-settings-field {
    margin-bottom: 18px;
}


.account-settings-field label {
    display: block;

    margin-bottom: 8px;

    color: #ffffff;

    font-size: 13px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.7px;
}


.account-settings-field input {
    width: 100%;

    height: 54px;

    box-sizing: border-box;

    padding: 0 16px;

    color: #ffffff;

    background:
        rgba(5, 5, 20, 0.78);

    border:
        1px solid
        rgba(175, 120, 255, 0.42);

    border-radius: 11px;

    outline: none;

    font-size: 15px;

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


.account-settings-field input:focus {
    border-color:
        rgba(179, 92, 255, 0.95);

    background:
        rgba(10, 7, 28, 0.92);

    box-shadow:
        0 0 0 3px
        rgba(139, 65, 255, 0.15),
        0 0 18px
        rgba(139, 65, 255, 0.20);
}


/* ==========================================
   Settings Button
   ========================================== */

.account-settings-button {
    width: 100%;

    min-height: 56px;

    color: #ffffff;

    background:
        linear-gradient(
            100deg,
            #c020e8 0%,
            #7a3df0 50%,
            #4197ff 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.70);

    border-radius: 12px;

    font-size: 15px;

    font-weight: 900;

    text-transform: uppercase;

    cursor: pointer;

    box-shadow:
        0 0 18px
        rgba(130, 68, 255, 0.42);
}


/* ==========================================
   Navigation
   ========================================== */

.account-settings-navigation {
    display: flex;

    align-items: center;

    gap: 26px;
}


.account-settings-link {
    color: #a16aff;

    text-decoration: none;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.6px;
}


.account-settings-link:hover {
    color: #cfb0ff;

    text-shadow:
        0 0 10px
        rgba(160, 100, 255, 0.65);
}


/* ==========================================
   Account Settings Mobile
   ========================================== */

@media (max-width: 620px) {

    .account-settings-shell {
        justify-content:
            flex-start;

        padding:
            28px 14px;
    }


    .account-settings-card {
        padding:
            28px 18px;

        border-radius: 20px;
    }


    .account-settings-heading h1 {
        font-size: 28px;
    }


    .account-settings-row {
        grid-template-columns: 1fr;

        gap: 5px;
    }


    .account-settings-navigation {
        flex-direction: column;

        gap: 14px;
    }

}
/* ==========================================
   ACCOUNT SETTINGS - DANGER AREA
   ========================================== */

.danger-settings-section {
    border-top:
        1px solid
        rgba(255, 90, 120, 0.28);
}


.danger-settings-section h2 {
    color:
        #ff7d96;
}


/* ==========================================
   Delete Account Warning
   ========================================== */

.account-danger-warning {
    margin-bottom: 20px;

    padding:
        14px 16px;

    background:
        rgba(140, 25, 50, 0.18);

    border:
        1px solid
        rgba(255, 90, 120, 0.38);

    border-radius: 10px;
}


.account-danger-warning strong {
    display: block;

    margin-bottom: 6px;

    color:
        #ff8da3;

    font-size: 15px;

    text-transform: uppercase;

    letter-spacing: 0.7px;
}


.account-danger-warning p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 14px;

    line-height: 1.5;
}


/* ==========================================
   Delete Account Button
   ========================================== */

.account-delete-button {
    width: 100%;

    min-height: 56px;

    color: #ffffff;

    background:
        linear-gradient(
            100deg,
            #9f1735,
            #d72c50
        );

    border:
        1px solid
        rgba(255, 170, 185, 0.60);

    border-radius: 12px;

    font-size: 15px;

    font-weight: 900;

    text-transform: uppercase;

    letter-spacing: 0.7px;

    cursor: pointer;

    box-shadow:
        0 0 14px
        rgba(210, 40, 80, 0.24);

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


.account-delete-button:hover {
    transform:
        translateY(-2px);

    filter:
        brightness(1.08);

    box-shadow:
        0 0 20px
        rgba(210, 40, 80, 0.38);
}
/* ==========================================
   FRIENDS PAGE
   ========================================== */

.friends-page {
    min-height: 100vh;

    margin: 0;

    color: #ffffff;

    background-color: #05030c;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


/* ==========================================
   Friends Background
   ========================================== */

.friends-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    opacity: 0.58;

    z-index: -2;
}


.friends-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.15),
            rgba(5, 3, 12, 0.55) 55%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index: -1;

    pointer-events: none;
}


/* ==========================================
   Friends Page Layout
   ========================================== */

.friends-page .friends-shell {
    width:
        min(
            1000px,
            94vw
        );

    max-width: 1000px;

    min-height: 100vh;

    margin:
        0 auto;

    padding:
        50px 0;

    transition: none;
}


/* ==========================================
   Main Friends Card
   ========================================== */

.friends-card {
    width: 100%;

    padding:
        38px 44px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius: 28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter:
        blur(18px);

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


/* ==========================================
   Friends Heading
   ========================================== */

.friends-heading {
    margin-bottom: 30px;

    text-align: center;
}


.friends-heading h1 {
    margin:
        0 0 8px;

    color: #ffffff;

    font-size: 36px;

    text-shadow:
        0 0 12px
        rgba(150, 90, 255, 0.70);
}


.friends-heading p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.68);

    font-size: 15px;
}


/* ==========================================
   Friends Status Messages
   ========================================== */

.friends-message {
    margin-bottom: 24px;

    padding:
        13px 16px;

    border-radius: 11px;

    text-align: center;

    font-size: 14px;
}


.friends-message-success {
    background:
        rgba(35, 150, 90, 0.40);

    border:
        1px solid
        rgba(100, 255, 165, 0.65);
}


.friends-message-error {
    background:
        rgba(170, 35, 65, 0.48);

    border:
        1px solid
        rgba(255, 120, 150, 0.68);
}


/* ==========================================
   Friends Sections
   ========================================== */

.friends-section {
    margin-top: 30px;

    padding-top: 26px;

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


.friends-section:first-of-type {
    margin-top: 0;

    padding-top: 0;

    border-top: none;
}


.friends-section-heading {
    display: flex;

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

    gap: 20px;

    margin-bottom: 16px;
}


.friends-section-heading h2 {
    margin: 0;

    color: #ffffff;

    font-size: 22px;
}


.friends-section-heading p {
    margin:
        5px 0 0;

    color:
        rgba(255, 255, 255, 0.63);

    font-size: 14px;

    line-height: 1.45;
}


/* ==========================================
   Count Badge
   ========================================== */

.friends-count-badge {
    min-width: 34px;
    height: 34px;

    display: flex;

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

    padding:
        0 10px;

    color: #ffffff;

    background:
        rgba(116, 64, 216, 0.78);

    border:
        1px solid
        rgba(190, 145, 255, 0.70);

    border-radius: 18px;

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


/* ==========================================
   Current User Card
   ========================================== */

.friends-current-user {
    display: flex;

    align-items: center;

    gap: 18px;

    padding: 18px;

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

    border:
        1px solid
        rgba(175, 120, 255, 0.30);

    border-radius: 15px;
}


.friends-current-info {
    display: flex;
    flex-direction: column;

    gap: 5px;
}


.friends-current-info strong {
    color: #ffffff;

    font-size: 19px;
}


.friends-current-info span {
    color:
        rgba(255, 255, 255, 0.65);

    font-size: 14px;
}


/* ==========================================
   Friends Avatars
   ========================================== */

.friends-avatar {
    flex:
        0 0 68px;

    width: 68px;
    height: 68px;

    display: flex;

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

    overflow: hidden;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #7e43e7,
            #32145d
        );

    border:
        3px solid
        rgba(186, 130, 255, 0.90);

    border-radius: 50%;

    box-shadow:
        0 0 14px
        rgba(137, 70, 255, 0.40);

    font-size: 27px;
    font-weight: 900;
}


.friends-current-avatar {
    flex:
        0 0 84px;

    width: 84px;
    height: 84px;

    font-size: 34px;
}


.friends-avatar img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* ==========================================
   User Lists
   ========================================== */

.friends-user-list {
    display: flex;
    flex-direction: column;

    gap: 12px;
}


/* ==========================================
   Individual User Card
   ========================================== */

.friends-user-card {
    display: grid;

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

    align-items: center;

    gap: 18px;

    padding: 17px 18px;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.14);

    border-radius: 15px;

    transition:
        border-color 0.20s ease,
        background 0.20s ease,
        transform 0.20s ease;
}


.friends-user-card:hover {
    background:
        rgba(20, 12, 42, 0.58);

    border-color:
        rgba(165, 105, 255, 0.48);

    transform:
        translateY(-1px);
}


/* ==========================================
   User Information
   ========================================== */

.friends-user-information {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 5px;
}


.friends-user-information strong {
    overflow-wrap: anywhere;

    color: #ffffff;

    font-size: 17px;
}


.friends-user-information span {
    overflow-wrap: anywhere;

    color:
        rgba(255, 255, 255, 0.65);

    font-size: 14px;
}


.friends-user-information small {
    color:
        rgba(170, 130, 255, 0.90);

    font-size: 12px;

    font-weight: bold;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}


/* ==========================================
   User Card Actions
   ========================================== */

.friends-card-actions {
    display: flex;

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

    flex-wrap: wrap;

    gap: 8px;
}


.friends-card-actions form {
    margin: 0;
}


/* ==========================================
   Friends Buttons
   ========================================== */

.friends-button,
.friends-search-button {
    min-height: 42px;

    padding:
        9px 16px;

    border-radius: 9px;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

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

    cursor: pointer;

    transition:
        transform 0.20s ease,
        filter 0.20s ease,
        box-shadow 0.20s ease,
        border-color 0.20s ease;
}


.friends-button:hover,
.friends-search-button:hover {
    transform:
        translateY(-1px);
}


.friends-button-primary,
.friends-search-button {
    color: #ffffff;

    background:
        linear-gradient(
            100deg,
            #b822e5 0%,
            #783fe9 50%,
            #418ff5 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, 0.62);

    box-shadow:
        0 0 12px
        rgba(130, 68, 255, 0.28);
}


.friends-button-primary:hover,
.friends-search-button:hover {
    filter:
        brightness(1.08);

    box-shadow:
        0 0 17px
        rgba(130, 68, 255, 0.45);
}


.friends-button-secondary {
    color: #ffffff;

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

    border:
        1px solid
        rgba(255, 255, 255, 0.28);
}


.friends-button-secondary:hover {
    background:
        rgba(255, 255, 255, 0.14);

    border-color:
        rgba(255, 255, 255, 0.48);
}


.friends-button-danger {
    color:
        #ffb2c0;

    background:
        rgba(155, 27, 58, 0.20);

    border:
        1px solid
        rgba(255, 94, 126, 0.42);
}


.friends-button-danger:hover {
    color: #ffffff;

    background:
        rgba(185, 32, 67, 0.42);

    border-color:
        rgba(255, 115, 145, 0.70);

    box-shadow:
        0 0 13px
        rgba(220, 45, 80, 0.22);
}


/* ==========================================
   Friend Search
   ========================================== */

.friends-search-form {
    width: 100%;
}


.friends-search-label {
    display: block;

    margin-bottom: 8px;

    color:
        rgba(255, 255, 255, 0.78);

    font-size: 13px;

    font-weight: bold;
}


.friends-search-row {
    display: grid;

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

    gap: 10px;
}


.friends-search-input {
    width: 100%;
    height: 48px;

    padding:
        0 15px;

    color: #ffffff;

    background:
        rgba(5, 5, 20, 0.78);

    border:
        1px solid
        rgba(175, 120, 255, 0.42);

    border-radius: 10px;

    outline: none;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 15px;

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


.friends-search-input::placeholder {
    color:
        rgba(255, 255, 255, 0.42);
}


.friends-search-input:focus {
    background:
        rgba(10, 7, 28, 0.92);

    border-color:
        rgba(179, 92, 255, 0.95);

    box-shadow:
        0 0 0 3px
        rgba(139, 65, 255, 0.15),
        0 0 15px
        rgba(139, 65, 255, 0.20);
}


.friends-search-button {
    min-width: 110px;
}


.friends-search-results {
    margin-top: 24px;
}


.friends-search-results h3 {
    margin:
        0 0 13px;

    color: #ffffff;

    font-size: 17px;
}


/* ==========================================
   Relationship Status Labels
   ========================================== */

.friends-status {
    display: inline-flex;

    align-items: center;

    min-height: 38px;

    padding:
        7px 12px;

    border-radius: 9px;

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

    text-transform: uppercase;

    letter-spacing: 0.4px;
}


.friends-status-pending {
    color:
        #d3baff;

    background:
        rgba(116, 64, 216, 0.16);

    border:
        1px solid
        rgba(155, 102, 245, 0.36);
}


.friends-status-received {
    color:
        #9dcaff;

    background:
        rgba(55, 126, 220, 0.15);

    border:
        1px solid
        rgba(90, 160, 255, 0.36);
}


.friends-status-friend {
    color:
        #9ff0c2;

    background:
        rgba(35, 150, 90, 0.15);

    border:
        1px solid
        rgba(85, 215, 145, 0.36);
}


/* ==========================================
   Empty States
   ========================================== */

.friends-empty-state {
    display: flex;

    align-items: center;

    gap: 15px;

    padding:
        18px;

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

    border:
        1px dashed
        rgba(255, 255, 255, 0.20);

    border-radius: 14px;
}


.friends-empty-icon {
    flex:
        0 0 44px;

    width: 44px;
    height: 44px;

    display: flex;

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

    color: #ffffff;

    background:
        rgba(116, 64, 216, 0.48);

    border:
        1px solid
        rgba(185, 135, 255, 0.55);

    border-radius: 50%;

    font-weight: bold;
}


.friends-empty-state strong {
    display: block;

    margin-bottom: 4px;

    color: #ffffff;
}


.friends-empty-state p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.60);

    font-size: 13px;

    line-height: 1.45;
}


/* ==========================================
   Friends Navigation
   ========================================== */

.friends-navigation {
    display: flex;

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

    flex-wrap: wrap;

    gap: 26px;

    margin-top: 24px;
}


.friends-navigation a {
    color: #a16aff;

    text-decoration: none;

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

    text-transform: uppercase;

    letter-spacing: 0.6px;
}


.friends-navigation a:hover {
    color: #cfb0ff;

    text-shadow:
        0 0 10px
        rgba(160, 100, 255, 0.65);
}


/* ==========================================
   Friends Keyboard Focus
   ========================================== */

.friends-button:focus-visible,
.friends-search-button:focus-visible,
.friends-search-input:focus-visible,
.friends-navigation a:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset: 3px;
}


/* ==========================================
   Friends Tablet
   ========================================== */

@media (max-width: 760px) {

    .friends-page .friends-shell {
        width:
            min(
                94vw,
                100%
            );

        padding:
            28px 0;
    }


    .friends-card {
        padding:
            30px 24px;

        border-radius: 22px;
    }


    .friends-user-card {
        grid-template-columns:
            auto minmax(0, 1fr);
    }


    .friends-card-actions {
        grid-column:
            1 / -1;

        justify-content:
            flex-start;

        padding-left:
            86px;
    }

}


/* ==========================================
   Friends Mobile
   ========================================== */

@media (max-width: 560px) {

    .friends-page .friends-shell {
        width: 94vw;

        padding:
            20px 0;
    }


    .friends-card {
        padding:
            25px 17px;

        border-radius: 18px;
    }


    .friends-heading h1 {
        font-size: 30px;
    }


    .friends-section-heading {
        align-items:
            flex-start;
    }


    .friends-current-user {
        padding: 14px;
    }


    .friends-current-avatar {
        flex:
            0 0 68px;

        width: 68px;
        height: 68px;
    }


    .friends-user-card {
        grid-template-columns:
            58px minmax(0, 1fr);

        gap: 12px;

        padding: 14px;
    }


    .friends-avatar {
        flex:
            0 0 58px;

        width: 58px;
        height: 58px;

        font-size: 22px;
    }


    .friends-card-actions {
        grid-column:
            1 / -1;

        width: 100%;

        padding-left: 0;

        justify-content:
            stretch;
    }


    .friends-card-actions form {
        flex: 1;
    }


    .friends-card-actions .friends-button {
        width: 100%;
    }


    .friends-search-row {
        grid-template-columns:
            1fr;
    }


    .friends-search-button {
        width: 100%;

        min-height: 48px;
    }


    .friends-navigation {
        flex-direction: column;

        gap: 14px;
    }

}
/* ==========================================
   Sidebar Friends Image
   ========================================== */

.friends-sidebar-icon {
    overflow: hidden;
}


.sidebar-friends-image {
    width: 72%;
    height: 72%;

    display: block;

    object-fit: contain;

    filter: invert(1);

    pointer-events: none;
}
/* ==========================================
   Standalone Page Centering Fix
   ========================================== */

.profile-page .profile-shell,
.account-settings-page .account-settings-shell {

    width: 100%;

    max-width: none;

    margin-left: 0;
    margin-right: 0;

    box-sizing: border-box;

    padding-top: 50px;

    transition: none;
}


/* Mobile */

@media (max-width: 620px) {

    .profile-page .profile-shell,
    .account-settings-page .account-settings-shell {

        width: 100%;

        margin-left: 0;
        margin-right: 0;

        padding:
            28px 14px;
    }

}
/* ==========================================
   MEMBER PROFILE PAGE
   ========================================== */

.member-profile-page {
    min-height: 100vh;

    margin: 0;

    color: #ffffff;

    background-color: #05030c;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


/* ==========================================
   Member Profile Background
   ========================================== */

.member-profile-page::before {
    content: "";

    position: fixed;
    inset: 0;

    background-image:
        url("background.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    opacity: 0.58;

    z-index: -2;
}


.member-profile-page::after {
    content: "";

    position: fixed;
    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(89, 43, 180, 0.15),
            rgba(5, 3, 12, 0.55) 55%,
            rgba(2, 1, 7, 0.82) 100%
        );

    z-index: -1;

    pointer-events: none;
}


/* ==========================================
   Member Profile Layout
   ========================================== */

.member-profile-page .member-profile-shell {
    width: 100%;

    max-width: none;

    min-height: 100vh;

    display: flex;
    flex-direction: column;

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

    gap: 24px;

    margin-left: 0;
    margin-right: 0;

    padding: 50px 20px;

    box-sizing: border-box;

    transition: none;
}


/* ==========================================
   Member Profile Card
   ========================================== */

.member-profile-card {
    width:
        min(
            720px,
            94vw
        );

    padding:
        38px 44px;

    background:
        linear-gradient(
            180deg,
            rgba(22, 18, 42, 0.94),
            rgba(9, 7, 20, 0.96)
        );

    border:
        2px solid
        rgba(175, 110, 255, 0.92);

    border-radius: 28px;

    box-shadow:
        0 0 0 1px
        rgba(255, 255, 255, 0.08),

        0 0 26px
        rgba(132, 70, 255, 0.40),

        0 20px 55px
        rgba(0, 0, 0, 0.65);

    backdrop-filter:
        blur(18px);

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


/* ==========================================
   Member Profile Header
   ========================================== */

.member-profile-header {
    display: flex;
    flex-direction: column;

    align-items: center;

    margin-bottom: 28px;

    text-align: center;
}


.member-profile-avatar {
    width: 150px;
    height: 150px;

    display: flex;

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

    overflow: hidden;

    margin-bottom: 18px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #7e43e7,
            #32145d
        );

    border:
        4px solid
        rgba(186, 130, 255, 0.95);

    border-radius: 50%;

    box-shadow:
        0 0 26px
        rgba(137, 70, 255, 0.60);

    font-size: 60px;

    font-weight: 900;
}


.member-profile-avatar img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.member-profile-header h1 {
    margin:
        0 0 4px;

    color: #ffffff;

    font-size: 34px;

    text-shadow:
        0 0 12px
        rgba(150, 90, 255, 0.60);
}


.member-profile-username {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.66);

    font-size: 16px;
}


/* ==========================================
   Member Information
   ========================================== */

.member-profile-information {
    overflow: hidden;

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius: 14px;
}


.member-profile-row {
    display: grid;

    grid-template-columns:
        180px 1fr;

    gap: 16px;

    padding:
        15px 16px;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.13);
}


.member-profile-row:last-child {
    border-bottom: none;
}


.member-profile-label {
    color:
        rgba(255, 255, 255, 0.60);

    font-size: 13px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}


.member-profile-value {
    color: #ffffff;

    overflow-wrap: anywhere;
}


/* ==========================================
   Member Bio
   ========================================== */

.member-profile-bio {
    margin-top: 26px;

    padding-top: 22px;

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


.member-profile-bio h2 {
    margin:
        0 0 12px;

    color: #ffffff;

    font-size: 22px;
}


.member-profile-bio p {
    margin: 0;

    padding: 17px 18px;

    color:
        rgba(255, 255, 255, 0.82);

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

    border:
        1px solid
        rgba(175, 120, 255, 0.26);

    border-radius: 12px;

    line-height: 1.6;

    overflow-wrap: anywhere;
}


.member-profile-empty-bio {
    color:
        rgba(255, 255, 255, 0.55) !important;

    font-style: italic;
}


/* ==========================================
   Member Profile Navigation
   ========================================== */

.member-profile-navigation {
    display: flex;

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

    gap: 26px;

    flex-wrap: wrap;
}


.member-profile-navigation a {
    color: #a16aff;

    text-decoration: none;

    font-size: 14px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.6px;
}


.member-profile-navigation a:hover {
    color: #cfb0ff;

    text-shadow:
        0 0 10px
        rgba(160, 100, 255, 0.65);
}


/* ==========================================
   Member Profile Mobile
   ========================================== */

@media (max-width: 620px) {

    .member-profile-page
    .member-profile-shell {

        justify-content:
            flex-start;

        padding:
            28px 14px;
    }


    .member-profile-card {
        padding:
            28px 18px;

        border-radius: 20px;
    }


    .member-profile-avatar {
        width: 120px;
        height: 120px;

        font-size: 48px;
    }


    .member-profile-header h1 {
        font-size: 28px;
    }


    .member-profile-row {
        grid-template-columns: 1fr;

        gap: 5px;
    }


    .member-profile-navigation {
        flex-direction: column;

        gap: 14px;
    }

}
/* ==========================================
   Clickable Friend Profiles
   ========================================== */

.friends-profile-link {
    display: block;

    color: inherit;

    text-decoration: none;
}


.friends-avatar-link {
    border-radius: 50%;
}


.friends-avatar-link:hover .friends-avatar {
    transform: scale(1.05);

    box-shadow:
        0 0 20px
        rgba(137, 70, 255, 0.62);
}


.friends-avatar {
    transition:
        transform 0.20s ease,
        box-shadow 0.20s ease;
}


.friends-profile-name {
    width: fit-content;

    color: #ffffff;

    text-decoration: none;

    font-size: 17px;

    font-weight: bold;

    transition:
        color 0.20s ease,
        text-shadow 0.20s ease;
}


.friends-profile-name:hover {
    color: #cfb0ff;

    text-shadow:
        0 0 10px
        rgba(160, 100, 255, 0.60);
}


.friends-profile-link:focus-visible,
.friends-profile-name:focus-visible {
    outline:
        3px solid #ffffff;

    outline-offset: 3px;
}
/* ==========================================
   Remark42 Discussion Area
   ========================================== */

#discussion-area {
    width: 100%;
    box-sizing: border-box;
}

#remark42 {
    width: 100%;
    max-width: none;
    min-height: 500px;
    box-sizing: border-box;
}

#remark42 iframe {
    width: 100% !important;
    max-width: none !important;
    min-height: 500px !important;
    border: none;
    display: block;
}
/* ==========================================
   Video Edit / Delete Buttons
   ========================================== */

.video-owner-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.video-owner-actions a,
.video-owner-actions button {
    flex: 1;
    min-height: 42px;
    padding: 10px 16px;

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

    font-size: 16px;
    font-weight: 600;
    line-height: 1;

    border-radius: 6px;
    cursor: pointer;
    box-sizing: border-box;
    text-decoration: none;
}

/* Edit button */
.video-edit-button {
    background: #ffffff;
    color: #222222;
    border: 1px solid #dddddd;
}

/* Delete button */
.video-delete-button {
    background: #ffffff;
    color: #222222;
    border: 1px solid #dddddd;
}

.video-edit-button:hover,
.video-delete-button:hover {
    background: #eeeeee;
}


/* ==========================================
   Business — Rules / Policy Cards
   ========================================== */

.policy-intro {
    margin-bottom: 22px;
    padding: 20px 22px;
    background:
        linear-gradient(
            145deg,
            rgba(40, 75, 135, 0.34),
            rgba(75, 35, 130, 0.34)
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.28);
    border-radius: 14px;
}

.policy-intro h3 {
    margin-bottom: 9px;
    color: #ffffff;
    font-size: 21px;
}

.policy-intro p {
    margin: 0;
    color:
        rgba(255, 255, 255, 0.87);
    font-size: 15px;
    line-height: 1.8;
}

.policy-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.policy-card {
    position: relative;
    min-width: 0;
    padding: 21px;
    overflow: hidden;
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.09),
            rgba(255, 255, 255, 0.04)
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.24);
    border-radius: 14px;
    box-shadow:
        inset 0 0 18px
        rgba(0, 0, 0, 0.18);
}

.policy-card-wide {
    grid-column:
        1 / -1;
}

.policy-card-number,
.mission-priority-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 29px;
    margin-bottom: 13px;
    padding: 0 10px;
    color: #ffffff;
    background:
        rgba(116, 64, 216, 0.80);
    border:
        1px solid
        rgba(255, 255, 255, 0.45);
    border-radius: 999px;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 1px;
}

.policy-card h3 {
    margin-bottom: 10px;
    color: #ffffff;
    font-size: 19px;
}

.policy-card p {
    margin:
        0 0 13px;
    color:
        rgba(255, 255, 255, 0.84);
    font-size: 14px;
    line-height: 1.75;
}

.policy-card p:last-child {
    margin-bottom: 0;
}


/* ==========================================
   Business — Mission Statement
   ========================================== */

.mission-hero {
    margin-bottom: 20px;
    padding: 26px;
    background:
        linear-gradient(
            135deg,
            rgba(15, 78, 145, 0.52),
            rgba(89, 36, 150, 0.50)
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.34);
    border-radius: 16px;
    box-shadow:
        inset 0 0 22px
        rgba(0, 0, 0, 0.20);
}

.mission-kicker {
    display: inline-block;
    margin-bottom: 9px;
    color:
        rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.mission-hero h3,
.retirement-vision h3 {
    margin-bottom: 10px;
    color: #ffffff;
    font-size: 23px;
    line-height: 1.3;
}

.mission-hero p {
    margin: 0;
    color:
        rgba(255, 255, 255, 0.90);
    font-size: 15px;
    line-height: 1.8;
}

.mission-priority-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.mission-priority-card {
    min-width: 0;
    padding: 21px;
    background:
        rgba(255, 255, 255, 0.065);
    border:
        1px solid
        rgba(255, 255, 255, 0.22);
    border-radius: 14px;
}

.mission-priority-card h3 {
    margin-bottom: 10px;
    color: #ffffff;
    font-size: 18px;
}

.mission-priority-card p {
    margin: 0;
    color:
        rgba(255, 255, 255, 0.83);
    font-size: 14px;
    line-height: 1.75;
}

.retirement-vision {
    padding: 24px;
    background:
        rgba(0, 0, 0, 0.26);
    border:
        1px solid
        rgba(255, 255, 255, 0.28);
    border-radius: 16px;
}

.retirement-vision-heading {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.16);
}

.retirement-vision-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(260px, 0.65fr);
    gap: 24px;
    align-items: start;
}

.retirement-vision-copy p {
    margin:
        0 0 15px;
    color:
        rgba(255, 255, 255, 0.86);
    font-size: 15px;
    line-height: 1.8;
}

.retirement-vision-copy p:last-child {
    margin-bottom: 0;
}

.retirement-feature-list {
    display: grid;
    gap: 12px;
}

.retirement-feature {
    padding: 16px;
    background:
        linear-gradient(
            145deg,
            rgba(68, 42, 125, 0.50),
            rgba(23, 61, 108, 0.45)
        );
    border:
        1px solid
        rgba(255, 255, 255, 0.23);
    border-radius: 12px;
}

.retirement-feature strong {
    display: block;
    margin-bottom: 6px;
    color: #ffffff;
    font-size: 15px;
}

.retirement-feature span {
    display: block;
    color:
        rgba(255, 255, 255, 0.76);
    font-size: 13px;
    line-height: 1.55;
}


/* ==========================================
   Business — New Responsive Layout
   ========================================== */

@media (max-width: 1000px) {

    .mission-priority-grid {
        grid-template-columns:
            1fr;
    }

    .retirement-vision-grid {
        grid-template-columns:
            1fr;
    }

}

@media (max-width: 750px) {

    .policy-grid {
        grid-template-columns:
            1fr;
    }

    .policy-card-wide {
        grid-column:
            auto;
    }

    .mission-hero,
    .retirement-vision {
        padding: 18px;
    }

}

/* ==========================================
   Hide Lobbies / Games Banner Text Overlay
   ========================================== */

#lobbiesBanner .game-banner-info,
#gamesBanner .game-banner-info {
    display: none !important;
}

/* ==========================================
   Content / Shared Videos Navigation
   ========================================== */

#sharedVideos,
#memberSharedVideos {
    scroll-margin-top: 28px;
}


/* ==========================================
   Member Profile Shared Videos Button
   ========================================== */

.member-profile-content-actions {
    display: flex;

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

    margin-top: 24px;
}


.member-shared-videos-button {
    display: inline-flex;

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

    min-height: 44px;

    padding: 10px 18px;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            #7e46df,
            #5422b8
        );

    border:
        1px solid rgba(255, 255, 255, 0.60);

    border-radius: 10px;

    text-decoration: none;

    font-size: 14px;
    font-weight: bold;

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


.member-shared-videos-button:hover {
    transform: translateY(-2px);

    background:
        linear-gradient(
            145deg,
            #8b55e8,
            #6330c7
        );

    box-shadow:
        0 0 14px rgba(116, 64, 216, 0.65);
}


/* ==========================================
   Public Member Shared Videos
   ========================================== */

.member-shared-videos-section {
    margin-top: 28px;

    padding-top: 24px;

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


.member-shared-videos-heading {
    display: flex;

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

    gap: 16px;

    margin-bottom: 18px;
}


.member-shared-videos-heading h2 {
    margin: 0 0 5px;

    color: #ffffff;

    font-size: 22px;
}


.member-shared-videos-heading p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.66);

    font-size: 14px;
}


.member-shared-videos-count {
    flex: 0 0 auto;

    min-width: 36px;
    height: 36px;

    display: inline-flex;

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

    padding: 0 10px;

    color: #ffffff;

    background:
        rgba(116, 64, 216, 0.72);

    border:
        1px solid rgba(255, 255, 255, 0.40);

    border-radius: 999px;

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


.member-profile-video-grid {
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
}


.member-shared-videos-empty {
    min-height: 230px;

    display: flex;
    flex-direction: column;

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

    padding: 28px 20px;

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

    border:
        1px solid rgba(175, 120, 255, 0.26);

    border-radius: 14px;

    text-align: center;
}


.member-shared-videos-empty h3 {
    margin:
        0 0 8px;

    color: #ffffff;

    font-size: 19px;
}


.member-shared-videos-empty p {
    max-width: 460px;

    margin: 0;

    color:
        rgba(255, 255, 255, 0.66);

    line-height: 1.5;
}


@media (max-width: 620px) {

    .member-profile-video-grid {
        grid-template-columns: 1fr;
    }


    .member-shared-videos-heading {
        align-items: flex-start;
    }

}

/* ==========================================
   Content Sidebar Video Icon
   ========================================== */

.sidebar-content-icon {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* ==========================================
   Website Logo Image
   ========================================== */

.logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;

    height: 100%;

    text-decoration: none;
}

.site-logo-image {
    display: block;

    width: auto;
    height: 58px;

    max-width: 170px;

    object-fit: contain;

    filter:
        drop-shadow(0 0 5px rgba(122, 32, 223, 0.42));

    transition:
        transform 0.20s ease,
        filter 0.20s ease;
}

.logo:hover .site-logo-image {
    transform: scale(1.04);

    filter:
        drop-shadow(0 0 9px rgba(122, 32, 223, 0.70));
}

@media (max-width: 700px) {

    .site-logo-image {
        height: 48px;
        max-width: 130px;
    }

}

/* ==========================================
   Navbar Site Search
   ========================================== */

.site-search {
    position: relative;

    width: 100%;
    max-width: 600px;
}


.site-search .search-box {
    max-width: none;
}


.site-search-results {
    position: absolute;

    top: calc(100% + 8px);
    left: 0;
    right: 0;

    max-height: 430px;

    overflow-y: auto;

    padding: 8px;

    background:
        rgba(18, 14, 32, 0.97);

    border:
        1px solid rgba(255, 255, 255, 0.28);

    border-radius: 12px;

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.48),
        0 0 16px rgba(116, 64, 216, 0.26);

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

    z-index: 10050;
}


.site-search-results[hidden] {
    display: none;
}


.site-search-result {
    width: 100%;

    display: flex;
    flex-direction: column;

    align-items: flex-start;

    gap: 3px;

    padding: 10px 12px;

    color: #ffffff;

    background: transparent;

    border: 1px solid transparent;
    border-radius: 9px;

    text-align: left;

    cursor: pointer;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}


.site-search-result:hover,
.site-search-result:focus {
    background:
        rgba(116, 64, 216, 0.36);

    border-color:
        rgba(185, 148, 255, 0.65);

    outline: none;

    transform:
        translateX(2px);
}


.site-search-result-title {
    font-size: 14px;
    font-weight: bold;
}


.site-search-result-subtitle {
    color:
        rgba(255, 255, 255, 0.64);

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}


.site-search-empty {
    padding: 14px 12px;

    color:
        rgba(255, 255, 255, 0.72);

    font-size: 13px;

    text-align: center;
}


/* ==========================================
   Updates ON / OFF Visual Controls
   ========================================== */

.updates-label {
    position: relative;

    margin-right: 2px;

    color: #111111;

    font-weight: bold;

    cursor: help;

    outline: none;
}


.updates-tooltip {
    position: absolute;

    left: 50%;
    top: calc(100% + 12px);

    transform:
        translateX(-50%)
        translateY(-4px);

    width: max-content;
    max-width: 190px;

    padding: 7px 10px;

    color: #ffffff;

    background:
        rgba(20, 16, 32, 0.96);

    border:
        1px solid rgba(255, 255, 255, 0.30);

    border-radius: 7px;

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.35);

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

    white-space: nowrap;

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.18s ease,
        transform 0.18s ease,
        visibility 0.18s ease;

    z-index: 10060;
}


.updates-label:hover
.updates-tooltip,
.updates-label:focus
.updates-tooltip {
    opacity: 1;

    visibility: visible;

    transform:
        translateX(-50%)
        translateY(0);
}


.updates-button {
    min-width: 48px;

    padding: 7px 14px;

    color: #111111;

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

    border:
        1px solid rgba(30, 30, 40, 0.35);

    border-radius: 6px;

    font-weight: bold;

    cursor: pointer;

    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.10);

    transition:
        transform 0.14s ease,
        background-color 0.20s ease,
        border-color 0.20s ease,
        box-shadow 0.20s ease,
        color 0.20s ease;
}


.updates-button:hover:not(.active) {
    background:
        rgba(255, 255, 255, 0.95);

    transform:
        translateY(-1px);
}


.updates-button.active {
    color: #ffffff;

    background: #7440d8;

    border-color: #5d24be;

    transform:
        translateY(2px);

    box-shadow:
        inset 0 3px 6px rgba(0, 0, 0, 0.34),
        0 0 10px rgba(116, 64, 216, 0.60);
}


.updates-button:active {
    transform:
        translateY(3px)
        scale(0.97);
}


@media (max-width: 850px) {

    .updates-label {
        font-size: 12px;
    }


    .updates-button {
        min-width: 42px;

        padding:
            7px 9px;
    }

}

/* ==========================================
   Discord Sidebar Image Icon
   ========================================== */

.sidebar-discord-image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 50%;
}

