/* =========================
   RESET
========================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

/* ===== DASAR HALAMAN / RESET ===== */
html {
    scroll-behavior: smooth;
}

body {
    background: #0b0f0d;
    color: white;
}


/* =========================
   NAVBAR
========================= */

/* ===== NAVBAR ===== */
nav {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
    padding: 18px 7%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(10, 14, 11, 0.85);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.logo {
    font-size: 22px;
    font-weight: 800;
}

.logo span {
    color: #2fae4a;
}

.links a {
    color: #ddd;
    text-decoration: none;
    margin-left: 28px;
    transition: 0.2s;
}

.links a:hover {
    color: #2fae4a;
}


/* =========================
   HERO
========================= */

/* ===== HERO / HALAMAN UTAMA ===== */
.hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 120px 20px 80px;
    overflow: hidden;
    background:
        linear-gradient(
            rgba(5, 10, 7, 0.55),
            rgba(5, 10, 7, 0.92)
        ),
        radial-gradient(
            circle at center,
            #006400,
            #0b0f0d 65%
        );
}

/* Garis kotak tipis seperti grid blok Minecraft */
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(47, 174, 74, 0.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(47, 174, 74, 0.09) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(circle at center, #000 0%, transparent 70%);
    mask-image: radial-gradient(circle at center, #000 0%, transparent 70%);
    pointer-events: none;
}

.hero-content {
    position: relative;
    max-width: 850px;
}

.badge {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(47, 174, 74, 0.12);
    border: 1px solid rgba(47, 174, 74, 0.3);
    color: #4cc464;
    margin-bottom: 22px;
    font-size: 14px;
}

.hero h1 {
    font-size: clamp(48px, 9vw, 90px);
    line-height: 0.95;
    margin-bottom: 25px;
}

.hero h1 span {
    color: #2fae4a;
}

.hero p {
    color: #b9c0bb;
    font-size: 18px;
    line-height: 1.7;
    max-width: 650px;
    margin: auto;
}


/* =========================
   BUTTONS
========================= */

.buttons {
    margin-top: 35px;
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.btn {
    display: inline-block;
    padding: 14px 25px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: bold;
    transition: 0.2s;
    border: none;
    cursor: pointer;
    font-size: 16px;
}

.btn-primary {
    background: #2fae4a;
    color: #071009;
}

.btn-primary:hover {
    transform: translateY(-3px);
    background: #45c25e;
}

.btn-secondary {
    border: 1px solid #444;
    color: white;
    background: rgba(255, 255, 255, 0.04);
}

.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
}

.btn-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

/* =========================
   SECTION
========================= */

/* ===== SECTION UMUM ===== */
section {
    padding: 90px 7%;
}

.section-title {
    text-align: center;
    margin-bottom: 50px;
}

.section-title h2 {
    font-size: 38px;
    margin-bottom: 12px;
}

.section-title p {
    color: #929993;
}


/* =========================
   INFORMASI SERVER
========================= */

/* ===== INFORMASI SERVER ===== */
.server-panel {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 2fr 1.3fr 0.9fr;
    background: #151c17;
    border: 1px solid #29332c;
    border-radius: 18px;
    overflow: hidden;
}

.server-cell {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 28px;
}

.server-cell + .server-cell {
    border-left: 1px solid #29332c;
}

.cell-label {
    font-size: 13px;
    color: #929993;
}

.cell-value {
    font-size: 24px;
}

.cell-sub {
    min-height: 18px;
    font-size: 13px;
    color: #6f7871;
}

.no-copy {
    /* Versi hanya untuk dibaca, tidak ada tombol salin dan teksnya tidak bisa diseleksi */
    -webkit-user-select: none;
    user-select: none;
}

/* ---- Status (online / offline) ---- */

.status-line {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
}

.status-dot {
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #6f7871;
}

.is-loading .status-dot {
    animation: blink 1s ease-in-out infinite alternate;
}

.is-online .status-dot {
    background: #2fae4a;
    animation: pulse 2s ease-out infinite;
}

.is-online .status-text {
    color: #4cc464;
}

.is-offline .status-dot {
    background: #e35d5d;
}

.is-offline .status-text {
    color: #e35d5d;
}

.is-unknown .status-text {
    color: #b9c0bb;
}

.is-maintenance .status-dot {
    background: #f0b43c;
    animation: blink 1.4s ease-in-out infinite alternate;
}

.is-maintenance .status-text {
    color: #f0b43c;
}

@keyframes pulse {
    0%   { box-shadow: 0 0 0 0 rgba(47, 174, 74, 0.55); }
    70%  { box-shadow: 0 0 0 10px rgba(47, 174, 74, 0); }
    100% { box-shadow: 0 0 0 0 rgba(47, 174, 74, 0); }
}

@keyframes blink {
    from { opacity: 0.3; }
    to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .status-dot {
        animation: none !important;
    }
}

/* ---- IP server ---- */

.ip-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.server-ip {
    padding: 10px 14px;
    background: #0b100d;
    border: 1px solid #29332c;
    border-radius: 10px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 17px;
    font-weight: bold;
    color: #4cc464;
    word-break: break-all;
    cursor: pointer;
    transition: 0.2s;
}

.server-ip:hover {
    border-color: #2fae4a;
}

.copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid #29332c;
    border-radius: 10px;
    color: #d5dad6;
    font-size: 14px;
    cursor: pointer;
    transition: 0.2s;
}

.copy-btn:hover,
.copy-btn.copied {
    border-color: #2fae4a;
    color: #4cc464;
}

.copy-btn:focus-visible,
.server-ip:focus-visible {
    outline: 2px solid #2fae4a;
}


/* =========================
   TENTANG
========================= */

/* ===== TENTANG SERVER ===== */
.about-section {
    background: #0f1511;
}

.about-grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 56px;
    align-items: start;
}

.about-text h2 {
    font-size: 38px;
    margin-bottom: 22px;
}

.about-text p {
    max-width: 60ch;
    margin-bottom: 18px;
    color: #b8beb9;
    font-size: 17px;
    line-height: 1.8;
}

.join-steps {
    padding: 32px;
    background: #151c17;
    border: 1px solid #29332c;
    border-radius: 18px;
}

.join-steps h3 {
    margin-bottom: 24px;
    font-size: 20px;
}

.join-steps ol {
    list-style: none;
    counter-reset: step;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.join-steps li {
    counter-increment: step;
    display: grid;
    grid-template-columns: 36px 1fr;
    column-gap: 16px;
    row-gap: 4px;
}

.join-steps li::before {
    content: counter(step);
    grid-row: 1 / span 2;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(47, 174, 74, 0.12);
    border: 1px solid rgba(47, 174, 74, 0.3);
    border-radius: 50%;
    color: #4cc464;
    font-weight: bold;
}

.join-steps li strong,
.join-steps li span {
    grid-column: 2;
}

.join-steps li span {
    color: #929993;
    font-size: 14.5px;
    line-height: 1.6;
}

.join-steps a {
    color: #4cc464;
}


/* =========================
   FEATURES
========================= */

/* ===== KARTU FITUR ===== */
.cards {
    max-width: 1100px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.card {
    padding: 30px;
    background: #151c17;
    border: 1px solid #242c26;
    border-radius: 15px;
    transition: 0.25s;
}

.card:hover {
    transform: translateY(-6px);
    border-color: #2fae4a;
}

.icon {
    font-size: 35px;
    margin-bottom: 18px;
}

.card h3 {
    margin-bottom: 12px;
}

.card p {
    color: #929993;
    line-height: 1.6;
}


/* =========================
   DISCORD
========================= */

/* ===== DISCORD ===== */
.discord-section {
    background: #0f1511;
}

.discord-box {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 40px 44px;
    background: #151c17;
    border: 1px solid #29332c;
    border-radius: 18px;
}

.discord-text h2 {
    margin-bottom: 10px;
    font-size: 30px;
}

.discord-text p {
    max-width: 52ch;
    color: #929993;
    line-height: 1.6;
}

.discord-box .btn {
    flex-shrink: 0;
}


/* =========================
   REGISTER (ajakan di beranda)
========================= */

/* ===== AREA PENDAFTARAN ===== */
.register {
    text-align: center;

    background:
        radial-gradient(
            circle at center,
            #183a21,
            #0b0f0d 65%
        );
}

.register h2 {
    font-size: 42px;
    margin-bottom: 15px;
}

.register p {
    color: #aeb6b0;
    margin-bottom: 30px;
}


/* =========================
   FOOTER
========================= */

/* ===== FOOTER ===== */
footer {
    padding: 30px 7%;
    text-align: center;
    color: #666d68;
    border-top: 1px solid #1d241f;
}


/* =========================
   MOBILE
========================= */

/* ===== RESPONSIVE: TABLET ===== */
@media (max-width: 900px) {

    .server-panel {
        grid-template-columns: 1fr 1fr;
    }

    .server-cell + .server-cell {
        border-left: none;
    }

    .server-cell {
        border-bottom: 1px solid #29332c;
    }

    .server-cell:nth-child(odd) {
        border-right: 1px solid #29332c;
    }

    .server-cell:nth-last-child(-n+2) {
        border-bottom: none;
    }

    .about-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

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

/* ===== RESPONSIVE: MOBILE ===== */
@media (max-width: 750px) {

    nav {
        padding: 16px 5%;
    }

    nav .links {
        display: none;
    }

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

    section {
        padding: 70px 5%;
    }

    .hero {
        padding-top: 110px;
    }

    .buttons .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .about-text h2 {
        font-size: 30px;
    }

    .join-steps {
        padding: 26px 22px;
    }

    .discord-box {
        flex-direction: column;
        align-items: stretch;
        padding: 30px 22px;
    }

    .discord-box .btn {
        justify-content: center;
    }

    .register h2 {
        font-size: 32px;
    }

}

/* ===== RESPONSIVE: HP KECIL ===== */
@media (max-width: 560px) {

    .server-panel {
        grid-template-columns: 1fr;
    }

    .server-cell:nth-child(odd) {
        border-right: none;
    }

    .server-cell:nth-last-child(-n+2) {
        border-bottom: 1px solid #29332c;
    }

    .server-cell:last-child {
        border-bottom: none;
    }
}