/* ==========================================
   MINAWORLD
========================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;

    font-family: Arial, Helvetica, sans-serif;

    color: white;

    background:

        /* LUEUR 1 */
        radial-gradient(
            circle at 15% 20%,
            rgba(145, 50, 255, 0.55) 0%,
            rgba(100, 25, 190, 0.18) 12%,
            transparent 30%
        ),

        /* LUEUR 2 */
        radial-gradient(
            circle at 90% 50%,
            rgba(180, 60, 255, 0.45) 0%,
            rgba(110, 30, 200, 0.16) 13%,
            transparent 30%
        ),

        /* LUEUR 3 */
        radial-gradient(
            circle at 25% 85%,
            rgba(115, 35, 255, 0.45) 0%,
            rgba(80, 20, 180, 0.16) 13%,
            transparent 30%
        ),

        #08050e;

    background-attachment: fixed;
}


/* ==========================================
   MENU GAUCHE
========================================== */

.sidebar {
    position: fixed;

    left: 20px;
    top: 50%;

    transform: translateY(-50%);

    width: 68px;

    padding: 10px;

    background: rgba(14, 8, 25, 0.88);

    border: 1px solid rgba(158, 74, 255, 0.35);

    border-radius: 20px;

    backdrop-filter: blur(15px);

    overflow: hidden;

    z-index: 1000;

    transition: width 0.3s ease;

    box-shadow:
        0 0 30px rgba(140, 53, 255, 0.20);
}


/* OUVERTURE DU MENU */

.sidebar:hover {
    width: 205px;
}


/* PETIT LOGO */

.mini-logo {
    height: 50px;

    display: flex;
    align-items: center;

    margin-bottom: 8px;
}

.mini-logo img {
    width: 45px;
    height: 45px;

    object-fit: cover;

    border-radius: 12px;
}


/* LIENS */

.sidebar a {
    height: 52px;

    display: flex;
    align-items: center;

    margin: 5px 0;

    color: #d8c6ff;

    text-decoration: none;

    border-radius: 12px;

    transition: 0.2s;
}

.sidebar a:hover,
.sidebar a.active {
    color: white;

    background:
        rgba(154, 65, 255, 0.20);
}

.sidebar a:hover {
    transform: translateX(3px);
}


/* ICONES */

.menu-icon {
    min-width: 46px;

    text-align: center;

    font-size: 21px;
}


/* TEXTE MENU */

.menu-text {
    opacity: 0;

    transform: translateX(-10px);

    white-space: nowrap;

    font-weight: bold;

    transition: 0.25s;
}

.sidebar:hover .menu-text {
    opacity: 1;

    transform: translateX(0);
}


/* ==========================================
   PAGE ACCUEIL
========================================== */

.hero {
    min-height: 90vh;

    display: flex;
    flex-direction: column;

    justify-content: center;
    align-items: center;

    text-align: center;

    padding: 50px 20px;
}


/* GRAND LOGO */

.logo {
    width: 155px;
    height: 155px;

    object-fit: cover;

    border-radius: 30px;

    margin-bottom: 22px;

    box-shadow:
        0 0 20px rgba(162, 69, 255, 0.65),
        0 0 60px rgba(122, 35, 220, 0.40);

    transition: 0.3s;
}

.logo:hover {
    transform: scale(1.05);
}


/* TITRES */

.hero h1,
.page-title h1 {
    font-size: 65px;

    text-shadow:
        0 0 10px #a74cff,
        0 0 30px #7020d4;
}

.subtitle {
    margin-top: 10px;

    color: #d7c5ff;

    font-size: 20px;
}


/* ==========================================
   IP SERVEUR
========================================== */

.server-ip {
    margin-top: 35px;

    display: flex;
    align-items: center;

    gap: 25px;

    padding: 12px 12px 12px 25px;

    background:
        rgba(255, 255, 255, 0.06);

    border:
        1px solid rgba(162, 74, 255, 0.45);

    border-radius: 16px;

    backdrop-filter: blur(10px);
}

.server-ip div {
    display: flex;
    flex-direction: column;

    text-align: left;
}

.server-ip small {
    color: #a98ec8;

    font-size: 10px;

    margin-bottom: 3px;
}

.server-ip span {
    font-size: 19px;

    font-weight: bold;
}


/* ==========================================
   BOUTONS
========================================== */

button {
    border: none;

    padding: 14px 20px;

    border-radius: 11px;

    background: #8f3cff;

    color: white;

    font-weight: bold;

    font-size: 15px;

    cursor: pointer;

    transition: 0.2s;
}

button:hover {
    transform: scale(1.04);

    background: #a55cff;

    box-shadow:
        0 0 20px rgba(160, 75, 255, 0.40);
}

.version {
    margin-top: 15px;

    color: #cdbbe9;
}

.hero-buttons {
    margin-top: 30px;

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

    justify-content: center;
}

.btn {
    display: inline-block;

    padding: 15px 25px;

    border-radius: 12px;

    text-decoration: none;

    color: white;

    font-weight: bold;

    transition: 0.2s;
}

.btn:hover {
    transform: translateY(-3px);
}

.btn-purple {
    background: #8d3df5;
}

.btn-discord {
    background: #5865F2;
}


/* ==========================================
   ACCUEIL - CARTES
========================================== */

.welcome {
    width: 85%;

    max-width: 1100px;

    margin: 0 auto 100px;

    text-align: center;
}

.welcome h2 {
    font-size: 32px;

    margin-bottom: 10px;
}

.welcome > p {
    color: #cbbce2;

    margin-bottom: 35px;
}

.features {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 25px;
}

.feature-card,
.info-card {
    padding: 30px 20px;

    background:
        rgba(255, 255, 255, 0.045);

    border:
        1px solid rgba(156, 72, 255, 0.25);

    border-radius: 18px;

    backdrop-filter: blur(10px);

    transition: 0.25s;
}

.feature-card:hover,
.info-card:hover {
    transform: translateY(-5px);

    border-color:
        rgba(175, 100, 255, 0.65);

    box-shadow:
        0 10px 40px rgba(108, 35, 190, 0.15);
}

.feature-card > span,
.info-card > span {
    font-size: 35px;
}

.feature-card h3,
.info-card h3 {
    margin: 15px 0 8px;
}

.feature-card p,
.info-card p {
    color: #cbbce2;

    line-height: 1.5;
}


/* ==========================================
   PAGES
========================================== */

.page {
    width: 85%;

    max-width: 1050px;

    min-height: 90vh;

    margin: auto;

    padding: 80px 0;
}

.page-title {
    text-align: center;

    margin-bottom: 50px;
}

.page-title > span {
    font-size: 45px;
}

.page-title h1 {
    margin-top: 10px;

    font-size: 50px;
}

.page-title p {
    color: #cbbce2;

    margin-top: 10px;
}


/* ==========================================
   PAGE SERVEUR
========================================== */

.server-big-card {
    padding: 40px;

    text-align: center;

    background:
        rgba(255, 255, 255, 0.05);

    border:
        1px solid rgba(160, 75, 255, 0.35);

    border-radius: 22px;

    margin-bottom: 25px;
}

.server-big-card img {
    width: 100px;
    height: 100px;

    object-fit: cover;

    border-radius: 20px;

    box-shadow:
        0 0 30px rgba(150, 60, 255, 0.35);
}

.server-big-card h2 {
    font-size: 30px;

    margin-top: 15px;
}

.server-address {
    color: #caa7ff;

    font-size: 20px;

    margin: 10px 0 20px;
}

.info-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 25px;

    margin-bottom: 30px;
}

.info-card {
    text-align: center;
}

.info-card a {
    color: #b978ff;

    text-decoration: none;

    font-weight: bold;
}

.content-box {
    padding: 35px;

    background:
        rgba(255, 255, 255, 0.04);

    border:
        1px solid rgba(155, 70, 255, 0.25);

    border-radius: 20px;
}

.content-box h2 {
    margin-bottom: 25px;
}

.steps {
    display: grid;

    gap: 15px;
}

.steps div {
    display: flex;

    align-items: center;

    gap: 15px;

    padding: 15px;

    background:
        rgba(255, 255, 255, 0.035);

    border-radius: 12px;
}

.steps strong {
    width: 35px;
    height: 35px;

    display: flex;

    justify-content: center;
    align-items: center;

    flex-shrink: 0;

    border-radius: 50%;

    background: #8f3cff;
}


/* ==========================================
   REGLEMENT
========================================== */

.rules-container {
    display: grid;

    gap: 15px;
}

.rule {
    display: flex;

    gap: 20px;

    padding: 25px;

    background:
        rgba(255, 255, 255, 0.04);

    border:
        1px solid rgba(155, 70, 255, 0.22);

    border-radius: 16px;

    transition: 0.2s;
}

.rule:hover {
    transform: translateX(5px);

    border-color:
        rgba(173, 94, 255, 0.55);

    background:
        rgba(145, 55, 255, 0.07);
}

.rule-number {
    color: #ad6cff;

    font-size: 24px;

    font-weight: bold;
}

.rule h2 {
    font-size: 20px;

    margin-bottom: 8px;
}

.rule p {
    color: #cbbce2;

    line-height: 1.6;
}


/* SANCTIONS */

.sanctions {
    margin-top: 15px;

    padding: 30px;

    text-align: center;

    background:
        rgba(255, 55, 75, 0.06);

    border:
        1px solid rgba(255, 90, 100, 0.35);

    border-radius: 18px;
}

.sanctions h2 {
    color: #ff808b;

    margin-bottom: 15px;
}

.sanctions p {
    color: #d6c8df;
}

.sanction-flow {
    margin: 25px 0;

    font-weight: bold;

    color: #ff9da6;
}

.sanction-flow span {
    color: #8660a8;

    margin: 0 10px;
}

.rules-end {
    padding: 30px;

    text-align: center;

    color: #d8c9e8;
}


/* ==========================================
   STAFF
========================================== */

.staff-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    /* ESPACE ENTRE LES CARTES */
    gap: 30px;

    width: 100%;
}


/* CARTE STAFF */

.staff-card {
    min-height: 270px;

    padding: 35px 25px;

    display: flex;
    flex-direction: column;

    justify-content: center;
    align-items: center;

    text-align: center;

    background:
        rgba(255, 255, 255, 0.045);

    border:
        1px solid rgba(156, 72, 255, 0.35);

    border-radius: 20px;

    backdrop-filter: blur(10px);

    transition: 0.25s;
}


/* EFFET SOURIS */

.staff-card:hover {
    transform: translateY(-7px);

    border-color:
        rgba(175, 100, 255, 0.75);

    box-shadow:
        0 15px 45px rgba(108, 35, 190, 0.22);
}


/* AVATAR STAFF */

.staff-avatar {
    width: 90px;
    height: 90px;

    display: flex;

    justify-content: center;
    align-items: center;

    margin-bottom: 18px;

    border-radius: 50%;

    background:
        rgba(145, 55, 255, 0.15);

    border:
        2px solid rgba(160, 75, 255, 0.55);

    font-size: 40px;

    box-shadow:
        0 0 20px rgba(145, 55, 255, 0.12);
}


/* PSEUDO */

.staff-card h2 {
    margin-bottom: 8px;

    font-size: 24px;
}


/* ROLE */

.staff-role {
    display: inline-block;

    margin-bottom: 16px;

    color: #bd83ff;

    font-weight: bold;
}


/* DESCRIPTION */

.staff-card p {
    color: #cbbce2;

    line-height: 1.5;
}


/* ==========================================
   FOOTER
========================================== */

footer {
    padding: 25px;

    text-align: center;

    color: #776b87;

    font-size: 14px;
}

/* ==========================================
   STATUT DU SERVEUR
========================================== */

.server-status {
    display: flex;
    justify-content: center;
    align-items: center;

    gap: 8px;

    margin: 12px 0;

    font-weight: bold;
}

.status-dot {
    width: 12px;
    height: 12px;

    border-radius: 50%;

    background: #888;

    box-shadow: 0 0 10px #888;
}

.server-status.online {
    color: #62ff91;
}

.server-status.online .status-dot {
    background: #35e86d;

    box-shadow:
        0 0 12px #35e86d;
}

.server-status.offline {
    color: #ff6b75;
}

.server-status.offline .status-dot {
    background: #ff3e4d;

    box-shadow:
        0 0 12px #ff3e4d;
}

/* ==========================================
   TELEPHONE / TABLETTE
========================================== */

@media (max-width: 800px) {

    .sidebar {
        left: 10px;

        width: 58px;
    }

    .sidebar:hover {
        width: 180px;
    }

    .hero h1 {
        font-size: 48px;
    }

    .page-title h1 {
        font-size: 40px;
    }

    .features,
    .info-grid,
    .staff-grid {
        grid-template-columns: 1fr;
    }

    .server-ip {
        flex-direction: column;

        padding: 20px;
    }

    .server-ip div {
        text-align: center;
    }

    .page,
    .welcome {
        width: 75%;

        margin-left: 20%;
    }

    .rule {
        flex-direction: column;

        gap: 8px;
    }
}