/* Global Styles & Dark Mode Theme */
body {
    background-color: #121212;
    color: #e0e0e0;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
    text-align: center;
}

.container {
    width: 90%;
    max-width: 800px;
}

/* Logo Styling */
.logo h1 {
    font-size: 6rem;
    font-weight: bold;
    color: #ffffff;
    margin-bottom: 40px;
    letter-spacing: 5px;
}

.logo .logo-x {
    color: #e53935; /* Red color */
}

/* Info Boxes Container */
.info-boxes {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 30px;
}

/* Individual Info Box Styling */
.info-box {
    background-color: #1e1e1e;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 20px;
    width: 150px;
    transition: background-color 0.3s, transform 0.3s;
}

.info-box.clickable {
    cursor: pointer;
}

.info-box.clickable:hover {
    background-color: #2a2a2a;
    transform: translateY(-5px);
}

.info-box .icon {
    font-size: 2.5rem;
    color: #bb86fc;
    margin-bottom: 10px;
}

.info-box .icon-text {
    font-size: 2.5rem;
    font-weight: bold;
    color: #bb86fc;
    margin-bottom: 10px;
}

.info-box p {
    margin: 0;
    font-size: 1.1rem;
}

/* Hidden Info Panel Styling */
.hidden-info {
    background-color: #1e1e1e;
    border-radius: 8px;
    padding: 20px;
    margin: 0 auto 20px auto;
    max-width: 500px;
    /* Start hidden */
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out, opacity 0.5s ease-out, padding 0.5s ease-out;
    padding-top: 0;
    padding-bottom: 0;
}

.hidden-info.show {
    /* Reveal with animation */
    max-height: 100px; /* Adjust if content is taller */
    opacity: 1;
    padding: 20px;
}

.hidden-info p {
    margin: 0;
    font-size: 1.2rem;
}

/* Theme Palette */
.theme-palette {
    position: absolute;
    top: 20px;
    right: 20px;
    display: flex;
    gap: 15px;
    background-color: rgba(30, 30, 30, 0.5);
    padding: 8px 12px;
    border-radius: 20px;
    border: 1px solid #333;
}

.theme-icon {
    font-size: 1.2rem;
    cursor: pointer;
    color: #aaaaaa;
    transition: color 0.3s, transform 0.3s;
}

.theme-icon:hover {
    color: #ffffff;
    transform: scale(1.1);
}

.theme-icon.active {
    color: #bb86fc;
}

/* Light Mode Theme */
body.light-mode {
    background-color: #f0f0f0;
    color: #121212;
}

body.light-mode .logo h1 {
    color: #121212;
}

body.light-mode .logo .logo-x {
    color: #bb86fc; /* Purple color for light mode */
}

body.light-mode .info-box {
    background-color: #ffffff;
    border: 1px solid #ddd;
}

body.light-mode .info-box.clickable:hover {
    background-color: #f5f5f5;
}

body.light-mode .hidden-info {
    background-color: #ffffff;
}

body.light-mode .theme-palette {
    background-color: rgba(255, 255, 255, 0.5);
    border: 1px solid #ddd;
}

body.light-mode .theme-icon {
    color: #555555;
}

body.light-mode .theme-icon:hover {
    color: #000000;
}

body.light-mode .theme-icon.active {
    color: #bb86fc;
}

/* Galaxy Mode Theme */
body.galaxy-mode {
    /* The gradient is now on a pseudo-element, so the body itself is clear */
    background-color: #000;
    color: #e0e0e0;
    position: relative; /* Needed for pseudo-element positioning */
    overflow: hidden; /* Prevents scrollbars from appearing due to stars */
}

body.galaxy-mode::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: -2; /* Place it behind everything */
    background: linear-gradient(45deg, #0f0c29, #302b63, #24243e);
    background-size: 400% 400%;
    animation: gradientAnimation 15s ease infinite;
}

body.galaxy-mode .logo h1 {
    color: #ffffff;
}

body.galaxy-mode .logo .logo-x {
    color: #e53935; /* Red */
}

body.galaxy-mode .info-box,
body.galaxy-mode .hidden-info,
body.galaxy-mode .modal-content {
    background-color: rgba(30, 30, 30, 0.7);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(187, 134, 252, 0.3);
}

body.galaxy-mode .theme-palette {
    background-color: rgba(30, 30, 30, 0.7);
    border: 1px solid rgba(187, 134, 252, 0.3);
}

@keyframes gradientAnimation {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Starry Background Layers */
#stars1, #stars2, #stars3 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Place behind content */
    display: none; /* Hidden by default */
}

body.galaxy-mode #stars1,
body.galaxy-mode #stars2,
body.galaxy-mode #stars3 {
    display: block; /* Show only in galaxy mode */
}

/* A function to generate random star positions */
/* This is a placeholder for the SASS function I will emulate */

/* Star Layer 1 (Smallest) - 70 stars */
#stars1 {
    width: 1px; height: 1px; background: transparent;
    animation: moveUp 50s infinite linear;
    box-shadow: 79vw 3vh #FFF, 9vw 12vh #FFF, 85vw 33vh #FFF, 51vw 1vh #FFF, 5vw 58vh #FFF, 64vw 55vh #FFF, 16vw 91vh #FFF, 43vw 99vh #FFF, 99vw 82vh #FFF, 73vw 35vh #FFF, 2vw 2vh #FFF, 3vw 72vh #FFF, 8vw 95vh #FFF, 23vw 4vh #FFF, 44vw 2vh #FFF, 50vw 88vh #FFF, 56vw 6vh #FFF, 60vw 10vh #FFF, 74vw 1vh #FFF, 82vw 10vh #FFF, 94vw 36vh #FFF, 1vw 51vh #FFF, 20vw 3vh #FFF, 32vw 7vh #FFF, 37vw 93vh #FFF, 47vw 87vh #FFF, 58vw 98vh #FFF, 68vw 89vh #FFF, 78vw 80vh #FFF, 83vw 53vh #FFF, 96vw 53vh #FFF, 12vw 8vh #FFF, 25vw 86vh #FFF, 30vw 96vh #FFF, 53vw 83vh #FFF, 54vw 4vh #FFF, 62vw 81vh #FFF, 84vw 22vh #FFF, 90vw 20vh #FFF, 4vw 34vh #FFF, 7vw 32vh #FFF, 11vw 43vh #FFF, 14vw 63vh #FFF, 27vw 57vh #FFF, 34vw 60vh #FFF, 40vw 83vh #FFF, 41vw 50vh #FFF, 63vw 44vh #FFF, 67vw 69vh #FFF, 76vw 54vh #FFF, 87vw 68vh #FFF, 97vw 6vh #FFF, 19vw 42vh #FFF, 28vw 15vh #FFF, 36vw 25vh #FFF, 48vw 79vh #FFF, 52vw 61vh #FFF, 71vw 28vh #FFF, 77vw 9vh #FFF, 80vw 44vh #FFF, 91vw 45vh #FFF, 95vw 90vh #FFF, 17vw 81vh #FFF, 22vw 21vh #FFF, 31vw 8vh #FFF, 49vw 18vh #FFF, 69vw 6vh #FFF, 88vw 41vh #FFF;
}

/* Star Layer 2 (Medium) - 50 stars */
#stars2 {
    width: 2px; height: 2px; background: transparent;
    animation: moveUp 75s infinite linear;
    box-shadow: 8vw 53vh #FFF, 88vw 94vh #FFF, 54vw 60vh #FFF, 12vw 10vh #FFF, 61vw 1vh #FFF, 33vw 22vh #FFF, 93vw 81vh #FFF, 42vw 45vh #FFF, 21vw 80vh #FFF, 70vw 6vh #FFF, 2vw 98vh #FFF, 81vw 2vh #FFF, 48vw 2vh #FFF, 9vw 7vh #FFF, 73vw 10vh #FFF, 37vw 50vh #FFF, 99vw 21vh #FFF, 16vw 81vh #FFF, 64vw 70vh #FFF, 28vw 63vh #FFF, 5vw 4vh #FFF, 78vw 44vh #FFF, 57vw 3vh #FFF, 41vw 82vh #FFF, 84vw 78vh #FFF, 96vw 34vh #FFF, 51vw 95vh #FFF, 24vw 91vh #FFF, 68vw 87vh #FFF, 14vw 53vh #FFF, 47vw 79vh #FFF, 74vw 89vh #FFF, 3vw 69vh #FFF, 19vw 90vh #FFF, 90vw 43vh #FFF, 32vw 40vh #FFF, 83vw 13vh #FFF, 60vw 32vh #FFF, 26vw 18vh #FFF, 52vw 28vh #FFF, 77vw 60vh #FFF, 4vw 20vh #FFF, 17vw 30vh #FFF, 36vw 88vh #FFF, 58vw 77vh #FFF, 67vw 48vh #FFF, 71vw 23vh #FFF, 94vw 68vh #FFF, 11vw 41vh #FFF, 30vw 14vh #FFF;
}

/* Star Layer 3 (Largest) - 30 stars */
#stars3 {
    width: 3px; height: 3px; background: transparent;
    animation: moveUp 100s infinite linear;
    box-shadow: 23vw 12vh #FFF, 82vw 31vh #FFF, 53vw 8vh #FFF, 9vw 44vh #FFF, 62vw 61vh #FFF, 37vw 5vh #FFF, 93vw 52vh #FFF, 14vw 81vh #FFF, 71vw 94vh #FFF, 43vw 39vh #FFF, 4vw 91vh #FFF, 30vw 99vh #FFF, 57vw 42vh #FFF, 88vw 78vh #FFF, 17vw 23vh #FFF, 78vw 6vh #FFF, 48vw 68vh #FFF, 98vw 8vh #FFF, 28vw 50vh #FFF, 67vw 28vh #FFF, 2vw 20vh #FFF, 34vw 73vh #FFF, 60vw 93vh #FFF, 84vw 50vh #FFF, 11vw 6vh #FFF, 41vw 19vh #FFF, 74vw 41vh #FFF, 91vw 2vh #FFF, 20vw 88vh #FFF, 51vw 24vh #FFF;
}

@keyframes moveUp {
    from { transform: translateY(0); }
    to { transform: translateY(-100vh); }
}

/* Profile Photo and Caption Section */
.profile-section {
    margin-top: 40px;
}

.profile-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%; /* Makes the image circular */
    object-fit: cover; /* Ensures the image covers the area without distortion */
    border: 3px solid #bb86fc;
    margin-bottom: 15px;
}

.caption {
    font-style: italic;
    font-size: 1.1rem;
    color: #aaaaaa;
}

body.light-mode .profile-photo {
    border-color: #bb86fc;
}

body.light-mode .caption {
    color: #555555;
}

/* Social Media Section */
.social-media-section {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-top: 30px;
}

.social-icon {
    font-size: 2.5rem;
    color: #aaaaaa;
    cursor: pointer;
    transition: color 0.3s, transform 0.3s;
}

.social-icon:hover {
    color: #bb86fc;
    transform: translateY(-5px);
}

body.light-mode .social-icon {
    color: #555555;
}

body.light-mode .social-icon:hover {
    color: #bb86fc;
}

/* Pop-up Modal */
.modal {
    display: none; /* Hidden by default */
    position: fixed;
    z-index: 100;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
}

.modal-content {
    background-color: #1e1e1e;
    margin: 15% auto;
    padding: 20px 30px;
    border: 1px solid #333;
    border-radius: 8px;
    width: 80%;
    max-width: 400px;
    text-align: center;
    position: relative;
    animation: fadeIn 0.3s;
}

.close-button {
    color: #aaaaaa;
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close-button:hover {
    color: #ffffff;
}

#popup-username {
    font-size: 1.5rem;
    font-weight: bold;
    color: #ffffff;
    user-select: all; /* Make it easy to copy */
}

body.light-mode .modal-content {
    background-color: #ffffff;
    border: 1px solid #ddd;
}

body.light-mode #popup-username {
    color: #121212;
}

body.light-mode .close-button {
    color: #555555;
}

body.light-mode .close-button:hover {
    color: #000000;
}

@keyframes fadeIn {
    from {opacity: 0; transform: scale(0.9);}
    to {opacity: 1; transform: scale(1);}
}
