/* @font-face {
 font-family: 'Inter';
 src: url('/asset/fonts/Inter/Inter-VariableFont_opsz,wght.ttf') format('woff2');
} */

/* inter-regular - latin */
@font-face {
  font-display: swap; 
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('/asset/fonts/inter-v20-latin/inter-v20-latin-regular.woff2') format('woff2'); 
}
/* inter-700 - latin */
@font-face {
  font-display: swap; 
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  src: url('/asset/fonts/inter-v20-latin/inter-v20-latin-700.woff2') format('woff2'); 
}
/* inter-900 - latin */
@font-face {
  font-display: swap; 
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  src: url('/asset/fonts/inter-v20-latin/inter-v20-latin-900.woff2') format('woff2'); 
}

/**
 * Start reset
 */


/* *,
*::before,
*::after {
    box-sizing: border-box;
} */

/* 1. Use a more intuitive box-sizing model */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 2. Remove default margins and padding for common elements */
/* * {
  margin: 0;
  padding: 0;
} */

/* 3. Improve media defaults */
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

/* 4. Remove built-in form typography styles */
input,
button,
textarea,
select {
    font: inherit;
}

/* 5. Avoid text overflows */
/* p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
} */

/* 6. Improve line height and body rendering */
body {
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
    line-height: 1.5;
}

/**
 * End reset
 */

:root {
    --bg-color: #0e0f13;
    --bg-color-transparent: #D8DBDC;
    --text-color: #ffffff;
    --secondary-text: #9ca3af;
    --accent-orange: #ff8c00;
    --border-color: rgba(255, 255, 255, 0.06);
    /* --background-color-gradient-blue: radial-gradient(circle at 90% 90%, #172334 0%, #0d0d12 60%); */
    --background-color-gradient-blue: radial-gradient(circle at 100% 50%, #172334 0%, #000000 60%);
    --accent-blue: #4f6ef7;
    --bg-card-glass: rgba(255, 255, 255, 0.03);
    --border-glass: rgba(255, 255, 255, 0.1);
    --text-bright: #ffffff;
    --text-dim: #a0a0a0;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --line-pos-desktop: 114px;
    --line-pos-mobile: 20px;
    --glass-stroke: rgba(255, 255, 255, 0.1);
    --color-link-primary: #4d62ff;

    --link-primary-color: #b1baff;
    --link-primary-background: #4d62ff;

    --border-radius: 0.25rem;
}

/* @media (prefers-color-scheme: light) {
    :root {
        --bg-color: #f5f5f7;
        --bg-color-transparent: #e8eaeb;
        --text-color: #111111;
        --secondary-text: #4b5563;
        --accent-orange: #e07000;
        --border-color: rgba(0, 0, 0, 0.08);
        --background-color-gradient-blue: radial-gradient(circle at 100% 50%, #dce6f5 0%, #f0f4ff 60%);
        --accent-blue: #2a45d4;
        --bg-card-glass: rgba(0, 0, 0, 0.03);
        --border-glass: rgba(0, 0, 0, 0.1);
        --text-bright: #000000;
        --text-dim: #555555;
        --glass-stroke: rgba(0, 0, 0, 0.1);
        --color-link-primary: #2a3fd4;
    }
} */


/**
 * Utility classes
 */

.dc-flex-align-center {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.nowrap {
    text-wrap: initial;
}

.uppercase {
    text-transform: uppercase;
}

.lowercase {
    text-transform: lowercase;
}

.color-secondary {
    color: var(--secondary-text);
}

.color-accent-orange {
    color: var(--accent-orange);
}

p {
    margin: 0 0 1rem 0;
}

.mb-2 {
    margin-bottom: 2rem;
}

.pos-relative {
    position: relative;
}

body {
    background: radial-gradient(circle at 20% 0%, #1a1d28 0%, #0e0f13 60%);

    /* background: url('background.jpg') no-repeat top center / cover, radial-gradient(circle at 20% 0%, #1a1d28 0%, #0e0f13 60%); */

    /* background-attachment: scroll, fixed; */

    /* background: radial-gradient(circle at 20% 0%, #1a1d28 0%, #0e0f13 60%);
            position: relative; */

    color: var(--text-color);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
    /* padding: 80px 20px; */
    padding: 1.5rem;
}

.container {
    max-width: 1050px;
    width: 100%;
}

.header-block {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    /* max-width: initial; */
    /* padding: 0.5rem; */
    /* background: black; */
    margin-bottom: 2rem;
}

/* HEADER BLOCK: LOGO & TITLES SIDE-BY-SIDE */
.header-block a {
    display: flex;
    align-items: center;
    /* justify-content: flex-start; */
    gap: 1rem;
    /* text-align: left; */
    /* width: fit-content; */
    /* margin: 0 auto 40px auto; */
    /* max-width: 50%; */
    color: var(--text-color);
    text-decoration: none;
    padding-right: 0.75rem;
    border-radius: var(--border-radius);
    /* background-color: rgb(from var(--link-primary-background) r g b / 0.1); */

    &:hover {
        background-color: rgb(from var(--link-primary-background) r g b / 0.2);
    }
}

nav.navigation-main {
    margin: 0 0 2rem 0;
    background: var(--bg-color);
    padding: 0.5rem;
    box-shadow: 0 0 64px 0 rgba(0, 51, 255, 0.25);
    border-radius: var(--border-radius);
    /* border-top-left-radius: var(--border-radius); */
    /* border-top-right-radius: var(--border-radius); */
    /* border: dotted 1px var(--color-link-primary); */
    /* border-bottom: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50); */
    gap: 0.5rem;
    display: flex;
    align-items: center;

    & a {
        align-self: stretch;
        /* text-align: center; */
        border-radius: var(--border-radius);
        border-left: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50);
        border-right: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50);
        /* border-top: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50); */
        /* border-radius: 0; */

        /* &:last-child {
            border-right: none;
        } */

        &.active {
            background-color: rgb(from var(--color-link-primary) r g b / 0.25);
            border-top: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50);
            color: var(--text-color);
        }
    }
}

.logo {
    width: 90px;
    /* height: auto; */
    /* opacity: 0.9; */
    aspect-ratio: 1 / 1;
}

.playlist {
    width: 180px;
    height: auto;
    opacity: 0.9;
}

/* .playlist-navigation-inner a {
    display: block;          
    height: 2.75rem;            
    overflow: hidden;        
} */

.render-template-playlist-navigation {
    width: 100%;
}

.render-template-links-social {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;

    & a {
        padding: 0.25rem;
        border-radius: var(--border-radius);
        transition: all 0.3s ease;

        & svg {
            fill: var(--color-link-primary);
            width: 1rem;
            height: 1rem;
        }

        &:hover {
            background-color: var(--color-link-primary);

            & svg {
                fill: var(--accent-orange);
            }
        }
    }
}

.playlist-navigation-inner a {
    text-decoration: none;
}

.playlist-navigation-inner a img.playlist-teaser {
    width: 100%;
    transition: all 0.3s ease;
    padding-top: 0.5rem;
    filter: grayscale(0%);
    object-fit: cover;
    display: block;
}

.playlist-navigation-inner li:not(.selected) a img.playlist-teaser {
    opacity: 0.1;
    filter: blur(2px);
}

.playlist-navigation-inner li:not(.selected) a:hover img.playlist-teaser {
    filter: grayscale(0%);
    opacity: 1;
}

.playlist-navigation-inner li.selected A {
    background-color: #1d255f;
}

.titles {
    display: flex;
    flex-direction: column;

    div {
        font-size: 2.2rem;
        letter-spacing: 3px;
        margin: 0;
        line-height: 1.1;
        font-weight: 900;
        text-transform: uppercase;
        /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */
    }
}

h1 {
    font-size: 2.2rem;
    letter-spacing: 3px;
    margin: 0;
    /* line-height: 1.1; */
    font-weight: 900;
    text-transform: uppercase;
    /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */
}

h1,
h2,
h3,
h4 {
    line-height: 1.2;
    margin-bottom: 0.5rem;
}

button,
input,
.label {
    line-height: 1;
}

.tagline {
    color: var(--secondary-text);
    margin: 5px 0 0 0;
    font-size: 1.1rem;
    letter-spacing: 1px;
}

.playlist-title {
    font-size: 2rem;
    color: #f3f4f6;
    font-weight: 500;
    display: block;
    /* margin-bottom: 8px; */
}

h2.playlist-title {
    margin: 0 0 1rem 0;
}

.playlist-title .full-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.playlist-title .full-title .range {
    background-color: var(--text-color);
    padding: 0.25rem;
    border-radius: var(--border-radius);
    font-size: 0.85rem;
    flex-shrink: 0;
    font-weight: bold;
    white-space: nowrap;
    color: var(--bg-color)
}

.playlist-title-series {
    font-size: 0.75rem;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    display: block;
    font-weight: normal;
}

.playlist-desc {
    font-size: 0.9rem;
    color: var(--secondary-text);
    line-height: 1.6;
    font-size: 1rem;
    /* padding-top: 1.5rem; */
    padding: 0;
    margin: 0 0 1rem 0;
}

.artists-intro {
    font-weight: normal;
    font-size: 0.85rem;
    /* color: var(--secondary-text); */
    line-height: 1.6;
}

.artists-desc {
    font-size: 1rem;
    color: var(--accent-orange);
    margin-bottom: 0;
    line-height: 1.6;
    width: 75%;
    /* text-transform: uppercase; */

    & a.link-primary {
        margin: 0.25rem 0;
    }
}

.genre-intro {
    font-weight: normal;
    font-size: 0.85rem;
    /* color: var(--secondary-text); */
    line-height: 1.6;
    margin-top: 2rem;
}

.genre-desc {
    font-size: 1rem;
    color: var(--accent-orange);
    margin-bottom: 0;
    line-height: 1.6;
    width: 75%;
    /* text-transform: uppercase; */
    
    & a.link-primary {
        margin: 0.25rem 0;
    }
}

.tracks-intro {
    font-weight: normal;
    font-size: 0.85rem;
    /* color: var(--secondary-text); */
    line-height: 1.6;
}

.tracks-desc {
    font-size: 0.85rem;
    color: var(--secondary-text);
    margin-bottom: 2rem;
    line-height: 1.6;
    text-align: left;
    /* text-align: left; */
    /* text-transform: uppercase; */
    list-style: none;
    padding: 0;
}

.tracks-desc div {
    margin-bottom: 0.5rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.tracks-desc div .track {
    color: var(--accent-orange);
}



.orange-num {
    color: var(--accent-orange);
    font-weight: 700;
}

.btn-group {
    display: flex;
    /* flex-direction: column; */
    gap: 12px;
    /* justify-content: flex-end; */
    align-items: center;
}

.btn {
    padding: 10px 18px;
    font-size: 0.75rem;
    text-decoration: none;
    border-radius: var(--border-radius);
    transition: all 0.2s ease;
    font-weight: 600;
    /* text-transform: uppercase; */
    letter-spacing: 0.5px;
    white-space: nowrap;
    text-align: center;
}

.btn-youtube {
    background: rgba(255, 0, 0, 0.08);
    border: 1px solid #ff0000;
    color: #ff4d4d;
}

.btn-youtube:hover {
    background-color: #ff0000;
    color: #fff;
}

.btn-spotify {
    background: rgba(29, 185, 84, 0.08);
    border: 1px solid #1DB954;
    color: #1DB954;
}

.btn-spotify:hover {
    background-color: #1DB954;
    color: #fff;
}

.link-youtube {
    cursor: pointer;
    background: rgba(255, 0, 0, 0.08);
    color: #ff4d4d;
    text-decoration: none;
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: var(--border-radius);
    text-transform: uppercase;
}

.link-youtube:hover {
    background-color: #ff0000;
    color: #fff;
}

.link-youtube-image:hover {
    filter: brightness(1.25);
    transition: filter 0.2s ease;
}

.link-primary {
    cursor: pointer;
    background: rgb(from var(--link-primary-background) r g b / 0.2);
    color: var(--link-primary-color);
    text-decoration: none;
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--border-radius);
    width: fit-content;
    margin: 0 0.25rem;

    svg {
        display: inline-block;
    }

    &.inline {
        padding: 0.125rem 0.25rem;
    }

    &.cta {
        background-color: var(--color-link-primary);
        color: #FFF;
        padding: 0.75rem 1rem;

        &:hover {
            background-color: var(--accent-orange);
        }
    }
}

.link-primary:hover {
    background-color: #0062ff;
    color: #ffffff;
}

button.link-primary {
    border: none;
    padding: 0.5rem 0.5rem;
}

.coming-soon {
    color: #4b5563;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    text-align: right;
}

.mission-statement {
    margin: 20px 0;
    font-size: 0.9rem;
    line-height: 1.6;
    padding: 0 1rem 0 1rem;
    /* color: var(--text-color); */
    /* text-align: center; */
    /* font-weight: 400; */
    color: var(--secondary-text);
}

.follow {
    background-color: var(--bg-color);
    padding: 1rem;
    width: fit-content;
    /* margin: 30px 0 80px 0; */
    /* padding-top: 30px; */
    /* border-top: 1px solid var(--border-color); */
    color: var(--secondary-text);
    text-align: center;
    font-size: 0.9rem;
    transform: rotate(357deg);
    /* margin: 2rem auto 3rem auto; */
    margin: 4rem auto 4rem auto;
    width: 95%;
}

.follow a {
    color: var(--text-color);
    text-decoration: none;
    font-weight: 600;
}

.follow a:hover {
    color: var(--accent-orange);
}

.copyright {
    /* text-transform: uppercase; */
    background-color: var(--bg-color);
    padding: 0;
    margin: 0 auto;
    width: fit-content;
    color: var(--secondary-text);
    text-align: center;
    font-size: 0.9rem;
}

.youtube-intro {
    font-size: 0.85rem;
    line-height: 1.6;
    font-weight: normal;
}

.iframe-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.iframe-container .link-youtube {
    width: fit-content;
}

iframe {
    border: dotted 1px var(--accent-orange);
    margin-top: 1rem;
    margin: 0;
}

iframe.youtube-embed {
    aspect-ratio: 16 / 9;
    border: 0;
    background: rgba(0, 51, 255, 0.06);
    margin: 0;
}

.playlist-collection-title .playlist-links-collection-title {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    a.link-primary {
        text-wrap: nowrap;
    }
}

img.playlist-teaser {
    width: 100%;
    max-width: 100%;
    height: auto;
    opacity: 0.8;
    aspect-ratio: 2048 / 230;
    /* filter: blur(2px) hue-rotate(90deg) saturate(50%) contrast(200%) brightness(150%); */
    /* transition: all 0.3s ease; */
}

img.playlist-teaser:hover {
    /* filter: blur(0); */
    opacity: 1;
}

.render-template-event-upcoming {
    & ul {
        list-style: none;
        padding: 0;
        margin: 0 0 0.5rem 0;

        & li {
            margin-bottom: 1rem;

            & a {
                /* color: var(--color-link-primary); */
                text-decoration: none;
                padding: 0.5rem 1rem;
                display: inline-block;

                & .event-countdown {
                    color: var(--text-color);
                    /* Subtle grey for the metadata */
                    font-size: 0.9em;
                    /* Slightly smaller */
                    letter-spacing: 0.05em;
                    /* Better readability */
                    margin-left: 5px;

                    &::before {
                        content: "... ";
                        /* Inserts the dots automatically */
                        color: #555;
                        /* Darker dots for a tech/data look */
                        margin-right: 5px;
                    }
                }
            }

            &:last-child {
                margin-bottom: 0;
            }

        }
    }
}

.playlist-content {
    .playlist-title .full-title {
        display: flex;
        align-items: normal;
        gap: 1rem;

        .range {
            display: flex;
            /* align-items: flex-end; */
            align-items: center;
        }
    }

    .playlist-content-title {
        padding: 0 0 1rem 0;
        margin: 0;
        font-weight: normal;
    }

    & div.playlist-description > p:last-child {
        margin-bottom: 0;
    }

    .content-box {
        display: flex;
        flex-direction: column;
        text-decoration: none;
        padding-bottom: 2rem;
        color: var(--text-color);
        background: rgba(255, 255, 255, 0.03);
        /* background: var(--background-color-gradient-blue); */
        border: 1px solid var(--glass-stroke);
        /* padding: 1.5rem 1.5rem 0.5rem 1.5rem; */
        padding: 0;
        border-radius: var(--border-radius);
        justify-content: start;
        margin-bottom: 1rem;

        >p {
            margin: 0;

            img {
                border-top-left-radius: 0.25rem;
                border-top-right-radius: 0.25rem;
            }
        }

        .content-box-inner {
            margin: 1rem 1rem 0 1rem;

            .title {
                padding: 0 0 1rem 0;
                margin: 0;
                font-weight: normal;
            }

            .section {
                padding: 0 0 1rem 0;
                margin: 0;

                & p:last-of-type {
                    margin: 0;
                }
            }

        }
    }
}

@media (max-width: 900px) {

    .dc-flex-align-center {
        gap: 1rem;
    }

    .tracks-intro {
        font-size: 1rem;
    }

    .artists-intro {
        font-size: 1rem;
    }

    .header-block {
        padding: 1rem;
        /* display: flex; */
        flex-direction: column;
        gap: 1rem;
        background: #000;   
        width: 100%;
        margin-bottom: 0.5rem;
        width: 100%;
        margin-bottom: 0;
        /* justify-content: center; */


        & .titles>div {
            font-size: 1.4rem;
        }

        a {
            gap: 1rem;
            opacity: 0.85;
            padding: 0.5rem;
            width: 100%;
            display: inline-flex;
            justify-content: center;
        }

        a:hover {
            opacity: 1;
        }

        img {
            width: 50px;
            height: 50px;
        }

        .render-template-links-social {
            /* gap: 1.5rem; */
            /* justify-content: space-evenly; */
            /* width: 100%; */
            display: none;
        }
    }

    nav.navigation-main {
        justify-content: center;
        background: #000;
        margin: 0 0 0.5rem 0;
        background: #000;
        border-radius: 0;
        padding: 1rem 0 1rem 0;
        border-top: dotted 1px rgb(from var(--color-link-primary) r g b / 0.50);

        & a {
            font-size: 0.85rem;
        }
    }

    h1 {
        font-size: 1rem;
    }

    .tagline {
        font-size: 0.85rem;
    }

    .btn-group {
        /* flex-direction: column; */
        align-items: center;
    }

    .playlist-table td {
        padding: 20px;
    }
}

/** NEW */

.playlist-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    /* margin-bottom: 3rem; */
    margin-bottom: 1rem;
}

.playlist-item {
    display: flex;
    gap: 30px;
    /* padding: 20px; */
    background: rgba(255, 255, 255, 0.02);
    border-radius: var(--border-radius);
    flex-wrap: wrap;
    border: solid 1px var(--border-color);

    .playlist-title {
        .dc-flex-align-center {
            gap: 1rem;
        }
    }
}

.playlist-logo {
    flex: 0 0 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    background: rgba(255, 255, 255, 0.02);
    padding: 1rem;
}

.playlist-logo img {
    width: 100%;
    height: auto;
}

.playlist-links {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.playlist-links a {
    color: var(--secondary-text);
    text-transform: uppercase;
    text-decoration: none;
    font-size: 0.75rem;
    letter-spacing: 2px;
    border-bottom: 1px solid var(--border-color);
    padding: 0.25rem;
    border-radius: var(--border-radius);
}

.playlist-links a:hover {
    background-color: #EEE;
}

.playlist-collection-title {
    align-items: center;
    display: flex;
    color: var(--secondary-text);
    text-transform: uppercase;
    font-size: 0.75rem;
    margin-bottom: 1rem;
    letter-spacing: 2px;
    padding: 0 1rem 1rem 1rem;
    border-bottom: 1px solid var(--border-color);
    font-weight: bold;
}

.playlist-collection-title .playlist-navigation {
    margin: 0;
    gap: 0.5rem;
}

.playlist-content {
    flex: 1;
    min-width: 250px;
    padding: 1rem;
    box-shadow: 0 0 64px 0 rgba(0, 51, 255, 0.25);
}

.playlist-title {
    font-size: 1.5rem;
    color: #f3f4f6;
    font-weight: 500;
    display: block;
    /* margin-bottom: 8px; */
}

.playlist-desc {
    font-size: 0.9rem;
    color: var(--secondary-text);
    line-height: 1.6;
    margin: 0 0 1rem 0;
}

.playlist-desc-watch {
    font-size: 0.85rem;
    color: var(--secondary-text);
    line-height: 1.6;
    margin-top: 0;
}

.playlist-buttons {
    display: flex;
    /* flex-direction: column; */
    gap: 12px;
    flex-shrink: 0;
    /* align-items: center; */
    padding: 1rem;
    margin: 2rem 0;
}

.navigation {
    /* text-align: center; */
    max-width: 50%;
    /* margin: 5rem 0 3rem 0; */
    /* margin: 4rem auto 3rem auto; */
    margin: 4rem auto 0 auto;
    display: flex;
    width: 100%;
    justify-content: center;
}

.navigation-description {
    padding: 1rem 0.5rem 0 0.5rem;
}

.navigation.navigation-full {
    max-width: initial;
    margin: 0;
}

.navigation ul {
    list-style: none;
    margin: 0 auto;
    border: solid 1px var(--border-color);
    padding: 0;
    border-radius: var(--border-radius);
}

.navigation.navigation-full ul {
    margin: 0;
    width: 100%;
}

.navigation ul a {
    color: var(--secondary-text);
    text-decoration: none;
    display: block;
    padding: 0.25rem;
    background: var(--bg-color);
    padding: 0.5rem;
    border-bottom: solid 1px var(--border-color);
}

.navigation ul a .title {
    color: var(--text-color);
}

.navigation ul a:hover {
    background-color: var(--accent-orange);
    color: var(--bg-color);
}

.navigation ul a:hover .orange-num {
    color: var(--bg-color);
}

.navigation ul li:first-of-type a {
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
}

.navigation ul li:last-of-type a {
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}

/* .navigation ul a:hover {
            text-decoration: underline;
        } */

#back-to-top {
    position: fixed;
    bottom: 40px;
    right: 40px;
    display: none;
    /* hidden by default */
    background-color: var(--accent-orange);
    color: var(--bg-color);
    border: none;
    padding: 12px 18px;
    border-radius: 50px;
    cursor: pointer;
    font-size: 0.85rem;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

#back-to-top:hover {
    background-color: #ffb84d;
    transform: translateY(-3px);
}

.separator {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.separator.separator-video-description {
    flex-direction: column-reverse;
}

.playlist-navigation {
    display: flex;
    margin: 2rem 0 1.5rem 0;
    gap: 1rem;
}

.core-genre-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
}

.core-playlist-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.page-core-event {
    & .header {
        border: solid 1px var(--border-color);
        padding: 1rem 1rem 0.5rem 1rem;
        margin-bottom: 1rem;
        background: rgba(255, 255, 255, 0.03);
        border-radius: var(--border-radius);

        & h2.playlist-content-title {
            font-weight: bold;
        }

        & p:last-of-type {
            margin-bottom: 0.5rem;
        }

        & .event-countdown {
            color: #888;
            /* Subtle grey for the metadata */
            font-size: 0.9em;
            /* Slightly smaller */
            letter-spacing: 0.05em;
            /* Better readability */
            margin-left: 5px;

            &::before {
                content: "... ";
                /* Inserts the dots automatically */
                color: #555;
                /* Darker dots for a tech/data look */
                margin-right: 5px;
            }
        }

        & .calendar-links-top {
            display: flex;
            gap: 0.5rem;
            margin-top: 1rem;
        }
    }

    & .content {
        padding: 0.5rem;

        & h3 {
            border-bottom: 1px solid rgb(from var(--color-link-primary) r g b / 0.1);
            padding: 0.5rem 0;
            font-size: 0.85rem;
            margin: 0 0 1rem 0;
            color: var(--accent-orange);
            text-transform: uppercase;
        }

        & h4,
        & h5 {
            font-size: 0.85rem;
            margin-bottom: 1rem;
            text-transform: uppercase;
            color: var(--text-color);
        }

        & hr {
            border: none;
            border-top: 1px solid rgb(from var(--secondary-text) r g b / 0.07);
            margin: 0 0 1rem 0;
            overflow: visible;
            text-align: center;
            height: 1px;
        }

        ul {
            list-style-position: outside;
            list-style-type: square;
            margin: 0.5rem 0 1rem 1rem;
            padding: 0;
            /* color: var(--text-color); */

            & ::marker {
                color: var(--accent-orange);
            }
        }

        & .youtube-embed {
            margin: 1.5rem 0 1rem 0;

        }

        & .credits {
            color: var(--secondary-text);
            font-size: 10px;
            text-align: right;
            position: absolute;
            padding: 0.5rem 1rem 0.75rem 0.5rem;
            bottom: 0.5rem;
            right: 0.5rem;
            background-color: rgb(from var(--bg-color) r g b / 0.5);
        }

        & .calendar-links-bottom {
            display: flex;
            flex-direction: column;
            margin: 2rem 0 0.5rem 0;
            gap: 1rem;
        }
    }
}

.page-core-overview,
.page-core-event {
    .playlist-container.introduction {
        flex-direction: row;

        .core-teaser {
            /* aspect-ratio: 3 / 4; */
            /* height: 100%; */
            max-width: 300px;
            object-fit: cover;
            transition: 0.3s ease;
            filter: blur(1px) saturate(150%) contrast(150%) brightness(50%);

            &:hover {
                filter: none;
            }
        }
    }

    .playlist-container.tracks {
        ul {
            list-style: square;
            margin: 0 0 1rem 0;
            padding: 0 0 0 1rem;

            li::marker {
                color: var(--secondary-text);
            }
        }
    }
}

.page-home {
    .navigation-description {
        a.cta {
            margin-bottom: 0.5rem;
        }
    }
}


.section-title {
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--text-dim);
    margin: 0 0 1.5rem 0;
    padding-left: 15px;
    border-left: 3px solid var(--accent-blue);
    font-weight: 700;
}

.section-title-description {
    margin: 0 0 1.5rem 1rem;
    color: var(--secondary-text);
}


.page-core-event {
    & .introduction {
        a.cta {
            margin-top: 0.5rem;
        }
    }

    & .section-title {
        padding: 0 1rem;
        margin: 2rem 0;
    }

    & .playlist-container {
        gap: 0;
    }
}

.page-core-overview {
    .introduction {
        a.cta {
            margin: 0.5rem 0;
        }
    }
}


@media (max-width: 900px) {

    .page-core-event,
    .page-core-overview {
        .playlist-container.introduction {
            padding: 0;
            flex-direction: column;

            .core-teaser {
                aspect-ratio: 3 / 4;
                object-fit: cover;
                object-position: center bottom;
                height: auto;
                max-height: 400px;
                width: 100%;
                max-width: initial;
                filter: none;
            }
        }
    }

    .core-genre-grid {
        display: block;
    }

    .core-playlist-grid {
        display: block;
    }


    .playlist-navigation {
        margin: 0 0 1.5rem 0;
        justify-content: space-between;
    }

    .separator {
        display: flex;
        flex-direction: column;
    }

    body {
        /* padding: 1.5rem; */
        padding: 0 0 2rem 0;
    }

    .navigation {
        max-width: initial;
        width: 100%;
        margin-top: 0;
    }

    .navigation ul a {
        padding: 0.75rem;
    }

    .mobile-hidden {
        display: none;
    }

    .tracks-desc div .year-track {
        display: flex;
        gap: 0.5rem;
        flex-direction: column;
    }

    .playlist-collection-title {
        display: flex;
        flex-direction: column;
        padding: 1rem 0;
        text-align: center;
    }

    .playlist-collection-title .link-primary {
        margin-top: 1rem;
        padding: 0.5rem;
    }

    .playlist-item {
        flex-direction: column;
        /* align-items: center; */
        /* text-align: center; */
        gap: 0.5rem;

        .playlist-title {
            .dc-flex-align-center {
                gap: 0.25rem;
                flex-direction: column;
                align-items: start;
            }
        }
    }

    .playlist-logo {
        flex: 1;
    }

    .playlist-logo img {
        width: 50%;
        height: auto;
    }

    .playlist-content {
        min-width: auto;
        font-size: 1rem;

        .playlist-title .full-title {
            .range {
                align-items: flex-end;
            }
        }
    }

    .playlist-desc {
        margin: 0 0 1rem 0;
        font-size: 1rem;
    }

    .playlist-desc-watch {
        font-size: 1rem;
        /* margin: 1rem 0 0 0; */
        margin: 0 0 2rem 0;
    }

    .playlist-buttons {
        /* flex-direction: row; */
        justify-content: center;
        gap: 10px;
        /* margin: 0 0 1rem 0; */
        padding-top: 0;
        margin-top: 2rem;
    }

    .artists-desc {
        margin-bottom: 1.5rem;
        font-size: 1rem;
    }

    .genre-desc {
        margin-bottom: 1.5rem;
        font-size: 1rem;
    }

    .tracks-desc div {
        /* flex-direction: column; */
        /* align-items: center; */
        margin-bottom: 1rem;
        font-size: 1rem;
        display: flex;
        flex-wrap: nowrap;
    }

    iframe.youtube-embed {
        display: block;
        /* width: calc(100% + 5rem); */
        /* margin: 1rem -2.5rem; */
        /* border-top: solid 1rem rgba(255, 255, 255, 0.02); */
        /* border-bottom: solid 1rem rgba(255, 255, 255, 0.02); */
        padding: 0;
    }

    .iframe-container {
        /* margin: 1.5rem 0; */
        margin: 0 0 0.5rem 0;
    }
}

/* body.page-core-overview {
    div.playlist-content {
        a.section-link {
            display: flex;
            gap: 1rem;
            flex-direction: column;
            text-decoration: none;
            padding-bottom: 2rem;
            color: var(--text-color);
            background: var(--background-color-gradient-blue);
            border: 1px solid var(--glass-stroke);
            padding: 1.5rem;
            border-radius: 12px;
            justify-content: start;
            margin-bottom: 1rem;

            h2 {
                padding: 0;
                margin: 0;
                font-size: 1rem;
                display: flex;
                gap: 1rem;
                flex-direction: column;
            }

            p {
                margin-bottom: 0;
            }

            p.artists {
                color: var(--secondary-text);
            }
            
            &:hover {
                background: var(--bg-color);
            }
        }
    }
} */

/* 1. Added the Flash Animation Keyframes */
@keyframes track-fade {
    0% {
        background: rgba(var(--accent-orange-rgb, 255, 165, 0), 0.2);
        /* border-color: var(--accent-orange); */
        transform: scale(1.02);
    }

    100% {
        background: rgba(255, 255, 255, 0.03);
        border-color: var(--glass-stroke);
        transform: scale(1);
    }
}

.archive-timeline {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin: 2rem 0;
    position: relative;

    &::before {
        content: '';
        position: absolute;
        left: var(--line-pos-desktop);
        top: 0;
        bottom: 0;
        width: 1px;
        background: linear-gradient(to bottom,
                transparent,
                var(--glass-stroke) 5%,
                var(--glass-stroke) 95%,
                transparent);
        z-index: 1;
    }

    .timeline-row {
        display: grid;
        grid-template-columns: 100px 30px 1fr;
        align-items: flex-start;
        position: relative;

        .time-stamp {
            color: #666;
            text-align: right;
            padding-top: 1.4rem;
            font-family: monospace;
            font-size: 0.85rem;
        }

        .indicator {
            justify-self: center;
            margin-top: 1.5rem;
            width: 10px;
            height: 10px;
            background: var(--accent-orange);
            border-radius: 50%;
            box-shadow: 0 0 10px var(--accent-orange);
            z-index: 2;
            position: relative;
        }

        .track-card {
            /* Keep this for centering */
            scroll-margin-top: 40vh;

            background: rgba(255, 255, 255, 0.03);
            border: 1px solid var(--glass-stroke);
            padding: 1.5rem;
            border-radius: 0.75rem;
            margin-left: 10px;
            transition: 0.3s ease;
            min-width: 0;

            display: flex;
            flex-direction: row-reverse;
            justify-content: start;
            gap: 1rem;

            /* 2. Target State: Triggered when the URL matches the ID */
            &:target {
                /* animation: track-pulse 3s cubic-bezier(0.22, 1, 0.36, 1); */
                animation: track-fade 3s ease-out;
                /* border-color: var(--accent-orange); */
                z-index: 10;
                /* Ensure it stays above the timeline line during pulse */
            }

            .card-content-text {
                display: flex;
                flex-direction: column;
                gap: 0.75rem;
                min-width: 0;

                .link-youtube {
                    width: fit-content;
                }
            }

            & .image-container {
                width: 50%;
                max-width: 120px;
                display: flex;
                flex-direction: column;
                gap: 1rem;

                & img {
                    aspect-ratio: 120 / 90;
                    height: fit-content;
                    border-radius: var(--border-radius);
                    max-width: 120px;
                }

                & .link-youtube {
                    width: fit-content;
                    margin: 0 auto;
                }
            }


            .track-meta {
                font-size: 1.1rem;
                overflow: hidden;
                min-width: 0;
                display: flex;
                align-items: center;
                gap: 0.25rem;

                .artist {
                    font-weight: 800;
                    color: #fff;
                }

                .divider {
                    color: var(--accent-orange);
                    margin: 0 8px;
                }

                .song {
                    color: #aaa;
                    display: inline-block;
                    max-width: 100%;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }
            }

            .dna-label {
                display: block;
                color: var(--accent-orange);
                font-size: 0.75rem;
                text-transform: uppercase;
                letter-spacing: 1px;
            }

            .detail {
                font-size: 0.9rem;
                margin-bottom: 0.25rem;
            }
        }
    }
}

/* --- MOBILE FIX --- */
@media (max-width: 600px) {
    .page-core-event {
        & .header {
            & .calendar-links-top {
                flex-direction: column;
            }
        }

        & .content {
            & .calendar-links-bottom {
                margin-bottom: 2rem;
            }
        }
    }

    .archive-timeline {
        gap: 1rem;

        /* Reposition the line for mobile */
        &::before {
            left: var(--line-pos-mobile);
        }

        .timeline-row {
            display: block;
            /* Stack everything */
            padding-left: 45px;
            /* Room for line + dot */

            .time-stamp {
                text-align: left;
                margin-bottom: 0.5rem;
                padding: 0;
            }

            .indicator {
                position: absolute;
                /* Position dot exactly centered on the mobile line (20px - 5px half-width) */
                left: 15px;
                top: 30px;
                /* Aligns with the first line of text */
                margin: 0;
            }

            .track-card {
                margin-left: 0;
                width: 100%;
                box-sizing: border-box;
                min-width: 0;
                gap: 0.75rem;

                padding: 0 0 1rem 0;
                background: transparent;
                border: none;
                border-radius: 0;
                /* border-bottom: solid 1px var(--border-color); */

                &:hover {
                    background-color: initial;
                    border-color: transparent;
                    transform: translateX(0);
                }

                .track-meta {
                    display: flex;
                    flex-direction: column;
                    align-items: initial;


                    .divider {
                        display: none;
                    }

                    .song {
                        display: -webkit-box;
                        -webkit-line-clamp: 2;
                        /* max 2 lines */
                        -webkit-box-orient: vertical;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        white-space: normal;
                        overflow-wrap: anywhere;
                    }
                }

                .glass-play-btn {
                    width: 100%;
                    text-align: center;
                }
            }
        }
    }
}
