/* ===== BASE RESET & FONT ===== */
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@400;600;700&display=swap');

*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

body {
    font-family: 'Rajdhani', sans-serif;
    background:
        radial-gradient(1200px 800px at 20% 20%, rgba(110, 64, 170, 0.18), transparent 60%),
        radial-gradient(1000px 700px at 80% 35%, rgba(28, 167, 255, 0.10), transparent 60%),
        radial-gradient(900px 650px at 50% 85%, rgba(255, 56, 166, 0.06), transparent 65%),
        radial-gradient(1200px 900px at 50% 50%, rgba(255, 255, 255, 0.04), transparent 55%),
        linear-gradient(180deg, #02030a 0%, #010106 55%, #000000 100%);
    background-attachment: fixed;
    background-size: cover;
    min-height: 100vh;
    color: #fff;
    position: relative;
    isolation: isolate;
}

/* ===== PARALLAX VARS ===== */
:root {
    --galaxy-x: 0;
    --galaxy-y: 0;
    --orbit-duration: 22s;
}

/* ===== STARFIELD ===== */
body::before,
body::after {
    content: "";
    position: fixed;
    inset: -12vmax;
    pointer-events: none;
    z-index: -1;
    transform: translate3d(0, 0, 0);
}

body::before {
    background-image:
        radial-gradient(1px 1px at 20px 30px, rgba(255,255,255,0.95), transparent 55%),
        radial-gradient(1px 1px at 140px 60px, rgba(255,255,255,0.85), transparent 55%),
        radial-gradient(1px 1px at 260px 40px, rgba(255,255,255,0.90), transparent 55%),
        radial-gradient(1px 1px at 410px 90px, rgba(255,255,255,0.85), transparent 55%);
    background-size: 560px 280px;
    background-repeat: repeat;
    opacity: 0.92;
    animation: galaxyTwinkle 12s ease-in-out infinite;
}

body::after {
    background-image:
        radial-gradient(2px 2px at 60px 80px, rgba(255,255,255,0.22), transparent 60%),
        radial-gradient(2px 2px at 200px 40px, rgba(255,255,255,0.18), transparent 60%),
        radial-gradient(700px 420px at 30% 30%, rgba(82,155,255,0.08), transparent 60%),
        radial-gradient(1200px 900px at 50% 50%, rgba(0,0,0,0.55), rgba(0,0,0,0.92) 75%);
    background-size: 420px 220px, 420px 220px, auto, auto;
    background-repeat: repeat, repeat, no-repeat, no-repeat;
    opacity: 0.92;
    animation: galaxyDrift 45s linear infinite;
}

@keyframes galaxyTwinkle {
    0%   { opacity: 0.75; filter: brightness(0.95); }
    50%  { opacity: 1; filter: brightness(1.25); }
    100% { opacity: 0.78; filter: brightness(1); }
}

@keyframes galaxyDrift {
    0%   { background-position: 0 0, 0 0, 0 0, 0 0; }
    100% { background-position: 220px 140px, -180px 120px, 140px -110px, 0 0; }
}

/* ===== TOP BUTTONS ===== */
.corner-btn {
    position: fixed;
    top: 14px;
    padding: 9px 14px;
    background: #00ffff;
    color: #000;
    border: none;
    border-radius: 6px;
    font-family: 'Orbitron', monospace;
    font-weight: 700;
    font-size: 0.65rem;
    text-transform: uppercase;
    box-shadow: 0 0 10px #00ffff;
    cursor: pointer;
    transition: 0.3s;
    text-decoration: none;
    z-index: 100;
}

.corner-btn:hover {
    box-shadow: 0 0 20px #00ffff, 0 0 40px #00ffff;
    transform: scale(1.08);
}

.left-btn { left: 8px; }
.center-btn {
    left: 50%;
    transform: translateX(-50%);
}
.center-btn:hover {
    transform: translateX(-50%) scale(1.08);
}
.right-btn { right: 8px; }

/* ===== MAIN ===== */
.container {
    text-align: center;
    padding: 80px 16px 40px;
    max-width: 1000px;
    margin: 0 auto;
}

/* ===== HEADINGS ===== */
h1 {
    font-family: 'Orbitron', monospace;
    font-size: 1.9em;
    color: #00ffff;
    text-shadow:
        0 0 10px #00ffff,
        0 0 20px #00ffff,
        0 0 30px #00ffff;
    margin-bottom: 14px;
}

h1:last-of-type {
    font-size: 1em;
    font-family: 'Rajdhani', sans-serif;
}

/* ===== WEB DEV BUTTON ===== */
.web-dev-btn {
    display: inline-block;
    padding: 14px 28px;
    background: transparent;
    color: #00ff00;
    border: 2px solid #00ff00;
    border-radius: 10px;
    font-family: 'Orbitron', monospace;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    transition: 0.3s ease;
    box-shadow: 0 0 10px #00ff00;
    margin: 14px auto 40px;
}

.web-dev-btn:hover {
    background: #00ff00;
    color: #000;
    box-shadow:
        0 0 20px #00ff00,
        0 0 40px #00ff00,
        0 0 60px #00ff00;
}

/* =====================================================
   SOLAR SYSTEM
===================================================== */

.solar-system {
    position: relative;
    width: 420px;
    height: 420px;
    margin: 0 auto 50px;
}

/* SUN */
.sun {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 80px;
    height: 80px;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle at 35% 35%, #ffe066, #ff8c00 55%, #7a3000);
    border-radius: 50%;
    box-shadow:
        0 0 20px rgba(255, 200, 0, 0.9),
        0 0 50px rgba(255, 150, 0, 0.6),
        0 0 90px rgba(255, 80, 0, 0.3);
    animation: sunPulse 4s ease-in-out infinite;
    z-index: 10;

    display: flex;
    align-items: center;
    justify-content: center;

    font-family: 'Orbitron', monospace;
    font-size: 0.45rem;
    font-weight: 900;
}

@keyframes sunPulse {
    0%,100% {
        box-shadow:
            0 0 20px rgba(255,200,0,0.9),
            0 0 50px rgba(255,150,0,0.6),
            0 0 90px rgba(255,80,0,0.3);
    }

    50% {
        box-shadow:
            0 0 30px rgba(255,220,0,1),
            0 0 70px rgba(255,160,0,0.8),
            0 0 120px rgba(255,90,0,0.5);
    }
}

/* ORBIT RING */
.orbit-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 380px;
    height: 380px;
    margin-left: -190px;
    margin-top: -190px;
    border-radius: 50%;
    border: 1.5px dashed rgba(255,0,255,0.35);
}

/* TRACK */
.orbit-track {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    transform-origin: center center;
    animation: orbitSpin 22s linear infinite;
}

/* PLANETS */
.orbit-track .planet {
    position: absolute;
    left: 0;
    top: 0;

    width: 110px;

    transform:
        translateX(190px)
        translateY(-50%)
        rotate(calc(-1 * var(--start-angle)));

    background: rgba(0,0,0,0.6);
    color: #ff00ff;
    text-decoration: none;

    border: 1.5px solid #ff00ff;
    border-radius: 50px;

    font-family: 'Rajdhani', sans-serif;
    font-size: 12px;
    font-weight: 700;

    padding: 9px 10px;

    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;

    min-height: 44px;

    box-shadow:
        0 0 8px #ff00ff,
        0 0 18px rgba(255,0,255,0.4);

    transition: 0.25s;

    animation: counterSpin 22s linear infinite;
}

.orbit-track .planet:hover {
    background: #ff00ff;
    color: #000;

    box-shadow:
        0 0 20px #ff00ff,
        0 0 40px #ff00ff;
}

/* ROTATION */
@keyframes orbitSpin {
    from {
        transform: rotate(var(--start-angle));
    }

    to {
        transform: rotate(calc(var(--start-angle) + 360deg));
    }
}

@keyframes counterSpin {
    from {
        transform:
            translateX(190px)
            translateY(-50%)
            rotate(calc(-1 * var(--start-angle)));
    }

    to {
        transform:
            translateX(190px)
            translateY(-50%)
            rotate(calc(-1 * (var(--start-angle) + 360deg)));
    }
}

/* PLANET ANGLES */
.orbit-track:nth-child(3) { --start-angle: 0deg; }
.orbit-track:nth-child(4) { --start-angle: 45deg; }
.orbit-track:nth-child(5) { --start-angle: 90deg; }
.orbit-track:nth-child(6) { --start-angle: 135deg; }
.orbit-track:nth-child(7) { --start-angle: 180deg; }
.orbit-track:nth-child(8) { --start-angle: 225deg; }
.orbit-track:nth-child(9) { --start-angle: 270deg; }
.orbit-track:nth-child(10){ --start-angle: 315deg; }

/* EXTRA LINKS */
.extra-links {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.extra-link {
    padding: 10px 20px;
    background: rgba(0,0,0,0.5);
    color: #00ffff;
    text-decoration: none;
    border: 1.5px solid #00ffff;
    border-radius: 8px;
    font-weight: 700;
    box-shadow: 0 0 8px rgba(0,255,255,0.4);
    transition: 0.25s;
}

.extra-link:hover {
    background: #00ffff;
    color: #000;
    box-shadow:
        0 0 20px #00ffff,
        0 0 40px rgba(0,255,255,0.5);
}

/* =====================================================
   MOBILE ORBIT LAYOUT
   SAME STYLE AS PC
===================================================== */

@media (max-width: 768px) {

    body {
        overflow-x: hidden;
    }

    .container {
        padding: 90px 10px 40px;
    }

    h1 {
        font-size: 1.2rem;
        line-height: 1.4;
    }

    h1:last-of-type {
        font-size: 0.8rem;
    }

    .web-dev-btn {
        font-size: 11px;
        padding: 12px 16px;
        margin-bottom: 40px;
        max-width: 250px;
    }

    /* =========================
       SOLAR SYSTEM
    ========================= */

    .solar-system {
        position: relative;
        width: 100%;
        max-width: 340px;
        height: 340px;
        margin: 20px auto 30px;
    }

    /* CENTER SUN */

    .sun {
        width: 70px;
        height: 70px;
        font-size: 0.38rem;

        left: 50%;
        top: 50%;

        transform: translate(-50%, -50%);
    }

    /* ORBIT RING */

    .orbit-ring {
        width: 250px;
        height: 250px;

        left: 50%;
        top: 50%;

        margin-left: -125px;
        margin-top: -125px;

        border: 1px dashed rgba(255,0,255,0.35);
    }

    /* TRACK */

    .orbit-track {
        position: absolute;
        left: 50%;
        top: 50%;

        width: 0;
        height: 0;

        transform-origin: center center;

        animation: orbitSpinMobile 20s linear infinite;
    }

    /* PLANETS */

    .orbit-track .planet {

        position: absolute;

        width: 82px;
        min-height: 40px;

        padding: 6px 8px;

        font-size: 9px;
        font-weight: 700;

        border-radius: 50px;

        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;

        line-height: 1.2;

        background: rgba(0,0,0,0.7);

        color: #ff00ff;

        border: 1.5px solid #ff00ff;

        box-shadow:
            0 0 10px #ff00ff,
            0 0 25px rgba(255,0,255,0.5);

        text-decoration: none;

        transform:
            translateX(125px)
            translateY(-50%)
            rotate(calc(-1 * var(--start-angle)));

        animation:
            counterSpinMobile 20s linear infinite;
    }

    /* HOVER */

    .orbit-track .planet:hover,
    .orbit-track .planet:active {

        background: #ff00ff;
        color: #000;

        box-shadow:
            0 0 20px #ff00ff,
            0 0 40px #ff00ff,
            0 0 60px rgba(255,0,255,0.7);
    }

    /* ROTATION */

    @keyframes orbitSpinMobile {

        from {
            transform: rotate(var(--start-angle));
        }

        to {
            transform: rotate(calc(var(--start-angle) + 360deg));
        }
    }

    @keyframes counterSpinMobile {

        from {
            transform:
                translateX(125px)
                translateY(-50%)
                rotate(calc(-1 * var(--start-angle)));
        }

        to {
            transform:
                translateX(125px)
                translateY(-50%)
                rotate(calc(-1 * (var(--start-angle) + 360deg)));
        }
    }

    /* PLANET POSITIONS */

    .orbit-track:nth-child(3) {
        --start-angle: 0deg;
    }

    .orbit-track:nth-child(4) {
        --start-angle: 45deg;
    }

    .orbit-track:nth-child(5) {
        --start-angle: 90deg;
    }

    .orbit-track:nth-child(6) {
        --start-angle: 135deg;
    }

    .orbit-track:nth-child(7) {
        --start-angle: 180deg;
    }

    .orbit-track:nth-child(8) {
        --start-angle: 225deg;
    }

    .orbit-track:nth-child(9) {
        --start-angle: 270deg;
    }

    .orbit-track:nth-child(10) {
        --start-angle: 315deg;
    }

    /* EXTRA LINK */

    .extra-links {
        margin-top: 15px;
    }

    .extra-link {
        font-size: 11px;
        padding: 10px 16px;
    }

    /* REMOVE OLD MOBILE GRID */

    .mobile-links,
    .extra-links-mobile {
        display: none !important;
    }
}

/* =====================================================
   EXTRA SMALL PHONES
===================================================== */

@media (max-width: 400px) {

    .solar-system {
        max-width: 280px;
        height: 280px;
    }

    .orbit-ring {

        width: 210px;
        height: 210px;

        margin-left: -105px;
        margin-top: -105px;
    }

    .sun {
        width: 60px;
        height: 60px;

        font-size: 0.33rem;
    }

    .orbit-track .planet {

        width: 68px;

        font-size: 8px;

        padding: 5px;

        transform:
            translateX(105px)
            translateY(-50%)
            rotate(calc(-1 * var(--start-angle)));

        animation:
            counterSpinTiny 20s linear infinite;
    }

    @keyframes counterSpinTiny {

        from {
            transform:
                translateX(105px)
                translateY(-50%)
                rotate(calc(-1 * var(--start-angle)));
        }

        to {
            transform:
                translateX(105px)
                translateY(-50%)
                rotate(calc(-1 * (var(--start-angle) + 360deg)));
        }
    }
}
