:root {
        --bg-dark: #1b1647;
        --box-bg: #413e60;
        --accent-gold: #ffe697;
        --link-blue: #0f0942;
        --text-shadow: #99874d;
        --font-main: 'Quicksand', sans-serif;
        --font-accent: 'Indie Flower', cursive;
        --font-body: 'Quicksand', sans-serif;
        --soft-purple: #9d8cff;
        --soft-gold: #ffecb3;
}

* {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
}

body {
        background: #d6d6d6 url('bg.png') repeat;
        font-family: var(--font-main);
        font-size: 13px;
        color: #ffffff;
        line-height: 1.6;
        letter-spacing: 0.5px;
        text-shadow: 1px 1px 0px #000000;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        padding-top: 50px;
        overflow-x: hidden;
}

::selection {
        background: var(--bg-dark);
        color: #ffffff;
}

::-moz-selection {
        background: var(--bg-dark);
        color: #ffffff;
}

#header {
        position: relative;
        width: 100%;
        max-width: 1300px;
        min-height: 700px;
        background: url('header.png') no-repeat center top;
        background-size: contain;
        display: flex;
        align-items: flex-end;
        padding-bottom: 0px;
}

.content-wrapper {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        margin-left: -5%;
        margin-bottom: -200px;
        width: 95%;
        max-width: 850px;
}

#title {
        font-family: var(--font-accent);
        font-size: clamp(30px, 5vw, 50px);
        z-index: 10;
        margin-bottom: 10px;
        width: 100%;
        text-align: center;
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200% auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        animation: shine 3s linear infinite;
        filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.8)) drop-shadow(0 0 15px rgba(0, 0, 0, 0.6));
        text-shadow: none;
}

#title::before,
#title::after {
        content: '✦';
        display: inline-block;
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        text-shadow: none;
        animation: sparkle-spin 6s linear infinite, shine-sync 3s linear infinite;
        vertical-align: middle;
        font-size: 0.4em;
        line-height: 1;
        -webkit-text-fill-color: transparent;
}

#title::before {
        margin-right: 15px;
}

#title::after {
        margin-left: 15px;
}

#status-bar-container {
        display: none;
}

#progress-container {
        position: relative;
        width: 100%;
        height: 20px;
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.8) 0%,
                        rgba(43, 36, 102, 0.7) 100%);
        border-radius: 999px;
        margin: 10px auto 20px auto;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.15);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
        align-self: center;
        backdrop-filter: blur(2px);
}

#progress-bar {
        position: relative;
        height: 100%;
        background: linear-gradient(to right, var(--soft-purple), var(--soft-gold));
        border-radius: 999px;
        transition: width 1s ease-in-out;
        box-shadow: 0 0 15px rgba(157, 140, 255, 0.4);
        overflow: hidden;
}

#progress-bar::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        background-image: linear-gradient(-45deg,
                        rgba(255, 255, 255, 0.2) 25%,
                        transparent 25%,
                        transparent 50%,
                        rgba(255, 255, 255, 0.2) 50%,
                        rgba(255, 255, 255, 0.2) 75%,
                        transparent 75%,
                        transparent);
        background-size: 30px 30px;
        animation: progress-flow 2s linear infinite;
        z-index: 1;
}

@keyframes progress-flow {
        from {
                background-position: 0 0;
        }

        to {
                background-position: 30px 30px;
        }
}

#progress-text {
        position: absolute;
        width: 100%;
        top: 0;
        left: 0;
        text-align: center;
        font-size: 10px;
        line-height: 20px;
        color: var(--bg-dark);
        text-transform: uppercase;
        letter-spacing: 1.5px;
        font-weight: 700;
        pointer-events: none;
        text-shadow: none;
}

@keyframes shine {
        to {
                background-position: 200% center;
        }
}

@keyframes shine-sync {
        to {
                background-position: 200px center;
        }
}

#content {
        position: relative;
        width: 100%;
        height: 450px;
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.85) 0%,
                        rgba(43, 36, 102, 0.6) 100%);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        border: 1px solid rgba(255, 255, 255, 0.12);
        box-shadow:
                0 6px 20px rgba(0, 0, 0, 0.5),
                inset 0 0 15px rgba(255, 255, 255, 0.05);

        padding: 15px 15px 30px 15px;
        border-radius: 20px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
}

#content::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 50%;
        background: linear-gradient(to bottom,
                        rgba(255, 255, 255, 0.05) 0%,
                        transparent 100%);
        pointer-events: none;
        z-index: 0;
}

.inner-content {
        width: 100%;
        flex: 1;
        overflow-y: auto;
        padding-right: 18px;
        text-align: justify;
        scrollbar-width: thin;
        scrollbar-color: var(--bg-dark) transparent;
}

.inner-content::-webkit-scrollbar {
        width: 6px;
}

.inner-content::-webkit-scrollbar-thumb {
        background: var(--bg-dark);
        border-radius: 10px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 0 10px var(--accent-gold);
}

.inner-content::-webkit-scrollbar-thumb:hover {
        background: var(--bg-dark);
        border: 1px solid rgba(255, 255, 255, 0.4);
        box-shadow: 0 0 10px var(--accent-gold);
}

.head {
        font-size: 13px;
        line-height: 20px;
        padding-left: 10px;
        padding-top: 4px;
        padding-bottom: 2px;
        background: linear-gradient(to right,
                        rgba(27, 22, 71, 0.9),
                        rgba(43, 36, 102, 0.8));
        border: 1px solid rgba(255, 255, 255, 0.1);
        letter-spacing: 2px;
        font-weight: bold;
        text-align: left;
        text-transform: uppercase;
        margin: 15px 0 10px 0;
        border-radius: 10px;
        text-shadow: none;
}

.head span {
        background: linear-gradient(to right, var(--accent-gold), var(--soft-purple));
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        -webkit-text-fill-color: transparent;
        filter: drop-shadow(1px 1px 0px #000000);
}

.head::before {
        content: '✦';
        display: inline-block;
        margin-right: 4px;
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        text-shadow: none;
        animation: sparkle-spin 6s linear infinite, shine-sync 3s linear infinite;
        vertical-align: middle;
        font-size: 1.2em;
        line-height: 1;
}

@keyframes sparkle-spin {
        0% {
                transform: rotate(0deg) scale(0.8);
                opacity: 0.7;
        }

        50% {
                transform: rotate(180deg) scale(1.2);
                opacity: 1;
        }

        100% {
                transform: rotate(360deg) scale(0.8);
                opacity: 0.7;
        }
}

b,
strong {
        font-size: 11px;
        text-transform: uppercase;
        background: linear-gradient(to right, var(--soft-purple), var(--accent-gold));
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        -webkit-text-fill-color: transparent;
        text-shadow: none;
        filter: drop-shadow(1px 1px 0px #000000);
        font-weight: 700;
}

i,
em {
        letter-spacing: 1px;
        text-shadow: 1px 1px 0px #000000;
}

s,
strike {
        color: #ffffff;
        text-shadow: 1px 1px 0px #000000;
}

u {
        text-decoration: none;
        border-bottom: 1px solid var(--accent-gold);
        color: #ffffff;
        text-shadow: 1px 1px 0px #000000;
}

.inner-content p {
        margin-top: 10px;
}

a {
        color: #ffffff;
        text-decoration: none;
        border-bottom: 1px solid var(--accent-gold);
        transition: all 0.5s ease-in-out;
        text-shadow: 1px 1px 0px #000000;
}

a:hover {
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: shine-sync 3s linear infinite;
        border-bottom-color: var(--text-shadow);
}

#credits {
        position: fixed;
        right: clamp(10px, 1.5vw, 18px);
        bottom: clamp(10px, 1.5vw, 18px);
        z-index: 50;
        display: inline-flex;
        align-items: center;
        gap: .25rem;
        padding: .25rem .75rem;
        border-radius: 999px;
        text-decoration: none;
        font-family: var(--font-body);
        font-size: 12.5px;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: #ffffff;
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.8) 0%,
                        rgba(43, 36, 102, 0.7) 100%);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        border: 1px solid rgba(255, 255, 255, 0.15);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
        transition: all 0.3s ease;
        text-shadow: 1px 1px 0px #000000;
}

#credits:hover,
#credits:focus-visible {
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.6) 0%,
                        rgba(43, 36, 102, 0.5) 100%);
        transform: scale(1.02);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.credit-name {
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 1px;
        border-bottom: 1px solid var(--accent-gold);
        transition: all 0.5s ease-in-out;
        color: #ffffff;
        background: none;
        -webkit-text-fill-color: #ffffff;
}

.credit-name:hover {
        border-bottom-color: var(--text-shadow);
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: shine-sync 3s linear infinite;
        text-shadow: none;
}

.credit-name::after {
        content: none;
}

#credits::after {
        content: '✦';
        display: inline-block;
        margin-left: 4px;
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        color: transparent;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        text-shadow: none;
        animation: sparkle-spin 6s linear infinite, shine-sync 3s linear infinite;
        vertical-align: middle;
        font-size: 1.2em;
        line-height: 1;
}

@media (max-width: 768px) {
        #header {
                background-size: cover;
                background-position: center;
                justify-content: center;
                padding-bottom: 20px;
        }

        .content-wrapper {
                margin-left: 0;
                margin-bottom: 0;
                width: 95%;
                align-items: center;
        }

        #content {
                width: 100%;
                height: 300px;
        }

        #title {
                text-align: center;
        }

        #menu-links {
                justify-content: center;
        }

        #menu-links a::after {
                right: auto;
                left: 130%;
                width: max-content;
                transform: translateY(-50%) translateX(10px);
        }

        #menu-links a:hover::after {
                transform: translateY(-50%) translateX(0);
        }
}

#menu-links {
        position: relative;
        z-index: 1000;
        display: flex;
        flex-direction: column;
        gap: 15px;
        margin-right: 25px;
        margin-top: 20px;
        flex-shrink: 0;
}

#menu-links a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.8) 0%,
                        rgba(43, 36, 102, 0.7) 100%);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 50%;
        color: #ffffff;
        font-size: 18px;
        text-decoration: none;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
        transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        text-shadow: none;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        -webkit-font-smoothing: antialiased;
        transform-style: preserve-3d;

        /* MENU BUTTONS FLOATING ANIMATION */
        /* To DISABLE the floating animation, just delete or comment out the 'animation' line below! */
        animation: social-float 4s ease-in-out infinite;
}

#menu-links a:nth-child(1) {
        animation-delay: 0s;
}

#menu-links a:nth-child(2) {
        animation-delay: 0.3s;
}

#menu-links a:nth-child(3) {
        animation-delay: 0.6s;
}

#menu-links a:nth-child(4) {
        animation-delay: 0.9s;
}

#menu-links a:nth-child(5) {
        animation-delay: 1.2s;
}

#menu-links a:nth-child(6) {
        animation-delay: 1.5s;
}

#menu-links a:nth-child(7) {
        animation-delay: 1.8s;
}

#menu-links a:nth-child(8) {
        animation-delay: 2.1s;
}

@keyframes social-float {

        0%,
        100% {
                transform: translateY(0);
        }

        50% {
                transform: translateY(-6px);
        }
}

#menu-links a:hover {
        transform: translateY(-5px) scale(1.1) rotate(8deg) !important;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
        animation-play-state: paused;
}

#menu-links a i {
        transition: transform 0.3s ease;
        background: linear-gradient(to right, var(--soft-purple), #ffffff, var(--accent-gold), #ffffff, var(--soft-purple));
        background-size: 200px auto;
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        -webkit-text-fill-color: transparent;
        animation: shine-sync 3s linear infinite;
        font-size: 22px;
        filter: none !important;
        text-shadow: none !important;
}

#menu-links a:hover i {
        transform: rotate(-5deg);
}

#menu-links a {
        position: relative;
}

#menu-links a::after {
        content: attr(data-tooltip);
        position: absolute;
        top: 50%;
        right: 120%;
        transform: translateY(-50%) translateX(-10px);
        background: linear-gradient(135deg,
                        rgba(27, 22, 71, 0.9) 0%,
                        rgba(43, 36, 102, 0.8) 100%);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        padding: 6px 14px;
        border-radius: 8px;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        color: #ffffff !important;
        -webkit-text-fill-color: #ffffff !important;
        white-space: nowrap;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        border: 1px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        pointer-events: none;
        letter-spacing: 1px;
        z-index: 9999;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
        display: block;
        width: max-content;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        -webkit-font-smoothing: antialiased;
        background-clip: padding-box !important;
        -webkit-background-clip: padding-box !important;
}

#menu-links a:hover::after {
        opacity: 1;
        visibility: visible;
        transform: translateY(-50%) translateX(0);
}

.firefly {
        position: absolute;
        border-radius: 50%;
        will-change: transform, opacity;
}