/*
|--------------------------------------------------------------------------
| SYNTHVERSE — MAIN HOMEPAGE
|--------------------------------------------------------------------------
| File:
|   /assets/styles/index.css
|
| Purpose:
|   Styling for the main synthverse.co.za homepage.
|
| Dependencies:
|   default.css
|   components.css
|
| Scope:
|   Homepage / Landing / Discovery
|
| Products:
|   Main SynthVerse platform only.
|
| Design direction:
|   Modern
|   Professional
|   Semi-futuristic
|   Music-centric
|   Immersive
|   Premium
|   Dark-first
|--------------------------------------------------------------------------
*/


/* ==========================================================================
   01. HOMEPAGE ROOT
   ========================================================================== */

.sv-home {
    position: relative;

    min-height: 100vh;

    overflow-x: hidden;

    background: var(--sv-background);
}


/* ==========================================================================
   02. HOMEPAGE SECTIONS
   ========================================================================== */

.sv-home-section {
    position: relative;

    padding-top: var(--sv-space-16);
    padding-bottom: var(--sv-space-16);
}

.sv-home-section:first-child {
    padding-top: var(--sv-space-8);
}

.sv-home-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: var(--sv-space-6);

    margin-bottom: var(--sv-space-8);
}

.sv-home-section-heading {
    max-width: 760px;
}

.sv-home-section-eyebrow {
    display: block;

    margin-bottom: var(--sv-space-2);

    color: var(--sv-theme-accent);

    font-size: var(--sv-font-size-xs);
    font-weight: var(--sv-weight-bold);

    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.sv-home-section-title {
    margin: 0;

    color: var(--sv-text-primary);

    font-size: clamp(
        1.75rem,
        4vw,
        2.75rem
    );

    font-weight: var(--sv-weight-bold);

    line-height: 1.08;

    letter-spacing: -0.035em;
}

.sv-home-section-description {
    max-width: 680px;

    margin: var(--sv-space-3) 0 0;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-md);

    line-height: var(--sv-line-relaxed);
}

.sv-home-section-action {
    flex-shrink: 0;
}


/* ==========================================================================
   03. HERO
   ========================================================================== */

.sv-home-hero {
    position: relative;

    min-height: min(
        760px,
        calc(100vh - var(--sv-header-height))
    );

    display: flex;
    align-items: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 75% 30%,
            var(--sv-theme-glow),
            transparent 34%
        ),
        radial-gradient(
            circle at 15% 75%,
            var(--sv-theme-glow-secondary),
            transparent 32%
        ),
        var(--sv-background);
}


/* Hero decorative atmosphere */

.sv-home-hero::before {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            var(--sv-background) 0%,
            transparent 55%,
            rgba(0, 0, 0, 0.12) 100%
        );
}

.sv-home-hero::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 180px;

    pointer-events: none;

    background:
        linear-gradient(
            to bottom,
            transparent,
            var(--sv-background)
        );
}


/* Hero content */

.sv-home-hero-inner {
    position: relative;

    z-index: var(--sv-z-base);

    width: 100%;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(360px, 0.95fr);

    align-items: center;

    gap: clamp(
        var(--sv-space-10),
        7vw,
        var(--sv-space-20)
    );
}

.sv-home-hero-content {
    position: relative;

    z-index: var(--sv-z-base);

    max-width: 720px;
}


/* Hero eyebrow */

.sv-home-hero-eyebrow {
    display: inline-flex;
    align-items: center;

    gap: var(--sv-space-2);

    margin-bottom: var(--sv-space-5);

    color: var(--sv-theme-accent);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-bold);

    letter-spacing: 0.12em;

    text-transform: uppercase;
}

.sv-home-hero-eyebrow::before {
    content: "";

    width: 28px;
    height: 2px;

    background: var(--sv-theme-accent);

    border-radius: var(--sv-radius-full);

    box-shadow:
        0 0 14px var(--sv-theme-glow);
}


/* Hero title */

.sv-home-hero-title {
    margin: 0;

    color: var(--sv-text-primary);

    font-size: clamp(
        3rem,
        7vw,
        6.25rem
    );

    font-weight: var(--sv-weight-heavy);

    line-height: 0.94;

    letter-spacing: -0.065em;
}

.sv-home-hero-title-accent {
    display: block;

    color: var(--sv-theme-accent);

    text-shadow:
        0 0 45px var(--sv-theme-glow);
}


/* Hero description */

.sv-home-hero-description {
    max-width: 650px;

    margin: var(--sv-space-7) 0 0;

    color: var(--sv-text-secondary);

    font-size: clamp(
        var(--sv-font-size-md),
        2vw,
        var(--sv-font-size-lg)
    );

    line-height: var(--sv-line-relaxed);
}


/* Hero actions */

.sv-home-hero-actions {
    display: flex;
    flex-wrap: wrap;

    gap: var(--sv-space-3);

    margin-top: var(--sv-space-8);
}


/* Hero secondary links */

.sv-home-hero-links {
    display: flex;
    flex-wrap: wrap;

    gap: var(--sv-space-5);

    margin-top: var(--sv-space-6);
}

.sv-home-hero-link {
    display: inline-flex;
    align-items: center;

    gap: var(--sv-space-2);

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-sm);

    transition:
        color var(--sv-transition-fast);
}

.sv-home-hero-link:hover {
    color: var(--sv-text-primary);
}

.sv-home-hero-link-icon {
    color: var(--sv-theme-accent);
}


/* ==========================================================================
   04. HERO ARTWORK DISPLAY
   ========================================================================== */

.sv-home-hero-art {
    position: relative;

    width: min(
        100%,
        620px
    );

    justify-self: end;

    aspect-ratio: 1 / 1;
}


/* Main artwork */

.sv-home-hero-artwork {
    position: absolute;

    top: 50%;
    left: 50%;

    width: 72%;
    aspect-ratio: 1 / 1;

    overflow: hidden;

    transform:
        translate(-50%, -50%)
        rotate(3deg);

    background: var(--sv-surface-2);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);

    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.42),
        0 0 60px var(--sv-theme-glow);

    z-index: 3;
}

.sv-home-hero-artwork img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* Artwork atmospheric layers */

.sv-home-hero-art::before {
    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 82%;
    aspect-ratio: 1 / 1;

    transform:
        translate(-50%, -50%)
        rotate(-7deg);

    background:
        linear-gradient(
            135deg,
            var(--sv-theme-accent),
            transparent 65%
        );

    opacity: 0.18;

    border-radius: var(--sv-radius-xl);

    filter: blur(1px);

    z-index: 1;
}

.sv-home-hero-art::after {
    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 94%;
    aspect-ratio: 1 / 1;

    transform:
        translate(-50%, -50%)
        rotate(11deg);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);

    opacity: 0.65;

    z-index: 0;
}


/* ==========================================================================
   05. HERO NOW PLAYING CARD
   ========================================================================== */

.sv-home-hero-now-playing {
    position: absolute;

    right: 0;
    bottom: 8%;

    z-index: 5;

    width: min(
        310px,
        55%
    );

    padding: var(--sv-space-4);

    display: flex;
    align-items: center;

    gap: var(--sv-space-3);

    background:
        var(--sv-surface-glass);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-lg);

    box-shadow: var(--sv-shadow-lg);

    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.sv-home-hero-now-playing-art {
    flex: 0 0 48px;

    width: 48px;
    height: 48px;

    overflow: hidden;

    border-radius: var(--sv-radius-sm);

    background: var(--sv-surface-2);
}

.sv-home-hero-now-playing-art img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.sv-home-hero-now-playing-info {
    min-width: 0;

    flex: 1;
}

.sv-home-hero-now-playing-label {
    color: var(--sv-theme-accent);

    font-size: 0.65rem;
    font-weight: var(--sv-weight-bold);

    letter-spacing: 0.1em;

    text-transform: uppercase;
}

.sv-home-hero-now-playing-title {
    margin-top: 3px;

    overflow: hidden;

    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-semibold);

    white-space: nowrap;
    text-overflow: ellipsis;
}

.sv-home-hero-now-playing-artist {
    margin-top: 2px;

    overflow: hidden;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ==========================================================================
   06. HERO STATS
   ========================================================================== */

.sv-home-hero-stats {
    display: flex;
    flex-wrap: wrap;

    gap: var(--sv-space-8);

    margin-top: var(--sv-space-10);

    padding-top: var(--sv-space-6);

    border-top: 1px solid var(--sv-border);
}

.sv-home-hero-stat {
    min-width: 100px;
}

.sv-home-hero-stat-value {
    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-xl);
    font-weight: var(--sv-weight-bold);
}

.sv-home-hero-stat-label {
    margin-top: 3px;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);
}


/* ==========================================================================
   07. QUICK DISCOVERY BAR
   ========================================================================== */

.sv-home-discovery {
    position: relative;

    z-index: 4;

    margin-top: calc(
        -1 * var(--sv-space-10)
    );
}

.sv-home-discovery-inner {
    display: grid;

    grid-template-columns:
        minmax(180px, 0.8fr)
        repeat(4, minmax(0, 1fr));

    overflow: hidden;

    background: var(--sv-surface-glass);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-lg);

    box-shadow: var(--sv-shadow-lg);

    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

.sv-home-discovery-item {
    position: relative;

    min-height: 96px;

    display: flex;
    align-items: center;

    gap: var(--sv-space-3);

    padding: var(--sv-space-5);

    border-right: 1px solid var(--sv-border);

    transition:
        background var(--sv-transition-fast);
}

.sv-home-discovery-item:last-child {
    border-right: 0;
}

.sv-home-discovery-item:hover {
    background: var(--sv-surface-glass-hover);
}

.sv-home-discovery-icon {
    flex: 0 0 42px;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--sv-theme-accent);

    background: var(--sv-primary-soft);

    border-radius: var(--sv-radius-md);
}

.sv-home-discovery-content {
    min-width: 0;
}

.sv-home-discovery-title {
    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-semibold);
}

.sv-home-discovery-description {
    margin-top: 2px;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);
}


/* ==========================================================================
   08. FEATURED MUSIC
   ========================================================================== */

.sv-home-featured {
    background:
        radial-gradient(
            circle at 10% 50%,
            var(--sv-theme-glow),
            transparent 28%
        );
}

.sv-home-featured-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(300px, 0.75fr);

    gap: var(--sv-space-6);
}


/* Featured track */

.sv-home-featured-track {
    position: relative;

    min-height: 440px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);

    background: var(--sv-surface);
}

.sv-home-featured-track-artwork {
    position: absolute;
    inset: 0;

    overflow: hidden;
}

.sv-home-featured-track-artwork img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform var(--sv-transition-slow);
}

.sv-home-featured-track:hover
.sv-home-featured-track-artwork img {
    transform: scale(1.035);
}

.sv-home-featured-track-artwork::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, 0.96) 0%,
            rgba(0, 0, 0, 0.68) 42%,
            rgba(0, 0, 0, 0.08) 100%
        );
}

.sv-home-featured-track-content {
    position: relative;

    z-index: 2;

    width: 100%;

    padding: var(--sv-space-8);
}

.sv-home-featured-track-label {
    color: var(--sv-theme-accent);

    font-size: var(--sv-font-size-xs);
    font-weight: var(--sv-weight-bold);

    letter-spacing: 0.12em;

    text-transform: uppercase;
}

.sv-home-featured-track-title {
    margin: var(--sv-space-2) 0 0;

    color: #ffffff;

    font-size: clamp(
        1.75rem,
        4vw,
        3rem
    );

    font-weight: var(--sv-weight-bold);

    letter-spacing: -0.035em;
}

.sv-home-featured-track-artist {
    margin-top: var(--sv-space-1);

    color: rgba(255, 255, 255, 0.72);

    font-size: var(--sv-font-size-md);
}

.sv-home-featured-track-actions {
    display: flex;
    align-items: center;

    gap: var(--sv-space-3);

    margin-top: var(--sv-space-6);
}


/* Featured side panel */

.sv-home-featured-list {
    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);
}

.sv-home-featured-list-header {
    padding: var(--sv-space-6);

    border-bottom: 1px solid var(--sv-border);
}

.sv-home-featured-list-title {
    margin: 0;

    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-lg);
    font-weight: var(--sv-weight-semibold);
}

.sv-home-featured-list-body {
    display: flex;
    flex-direction: column;
}

.sv-home-featured-list-item {
    display: flex;
    align-items: center;

    gap: var(--sv-space-3);

    padding: var(--sv-space-4);

    border-bottom: 1px solid var(--sv-border);

    transition:
        background var(--sv-transition-fast);
}

.sv-home-featured-list-item:last-child {
    border-bottom: 0;
}

.sv-home-featured-list-item:hover {
    background: var(--sv-surface-glass);
}

.sv-home-featured-list-number {
    width: 24px;

    color: var(--sv-text-disabled);

    font-size: var(--sv-font-size-xs);

    text-align: center;
}

.sv-home-featured-list-art {
    flex: 0 0 52px;

    width: 52px;
    height: 52px;

    overflow: hidden;

    border-radius: var(--sv-radius-sm);

    background: var(--sv-surface-2);
}

.sv-home-featured-list-art img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.sv-home-featured-list-info {
    min-width: 0;

    flex: 1;
}

.sv-home-featured-list-track {
    overflow: hidden;

    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-semibold);

    white-space: nowrap;
    text-overflow: ellipsis;
}

.sv-home-featured-list-artist {
    margin-top: 2px;

    overflow: hidden;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ==========================================================================
   09. ARTIST DISCOVERY
   ========================================================================== */

.sv-home-artists {
    background:
        linear-gradient(
            to bottom,
            transparent,
            var(--sv-surface) 50%,
            transparent
        );
}

.sv-home-artist-grid {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    gap: var(--sv-space-5);
}


/* ==========================================================================
   10. RELEASES
   ========================================================================== */

.sv-home-releases {
    position: relative;
}

.sv-home-release-grid {
    display: grid;

    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );

    gap: var(--sv-space-5);
}


/* ==========================================================================
   11. CHARTS
   ========================================================================== */

.sv-home-charts {
    background:
        radial-gradient(
            circle at 85% 50%,
            var(--sv-theme-glow),
            transparent 30%
        );
}

.sv-home-chart-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);

    gap: var(--sv-space-6);
}

.sv-home-chart-feature {
    position: relative;

    min-height: 420px;

    overflow: hidden;

    display: flex;
    align-items: flex-end;

    background: var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);
}

.sv-home-chart-feature-art {
    position: absolute;
    inset: 0;
}

.sv-home-chart-feature-art img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.sv-home-chart-feature-art::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, 0.95),
            rgba(0, 0, 0, 0.1)
        );
}

.sv-home-chart-feature-content {
    position: relative;

    z-index: 2;

    padding: var(--sv-space-8);
}

.sv-home-chart-position {
    color: var(--sv-theme-accent);

    font-size: 4rem;
    font-weight: var(--sv-weight-heavy);

    line-height: 1;
}

.sv-home-chart-feature-title {
    margin-top: var(--sv-space-3);

    color: #ffffff;

    font-size: var(--sv-font-size-xl);
    font-weight: var(--sv-weight-bold);
}

.sv-home-chart-feature-artist {
    margin-top: var(--sv-space-1);

    color: rgba(255, 255, 255, 0.7);
}

.sv-home-chart-list {
    display: flex;
    flex-direction: column;

    padding: var(--sv-space-3);

    background: var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);
}

.sv-home-chart-item {
    display: grid;

    grid-template-columns:
        38px
        52px
        minmax(0, 1fr)
        auto;

    align-items: center;

    gap: var(--sv-space-3);

    padding: var(--sv-space-3);

    border-radius: var(--sv-radius-md);

    transition:
        background var(--sv-transition-fast);
}

.sv-home-chart-item:hover {
    background: var(--sv-surface-glass);
}

.sv-home-chart-rank {
    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-bold);

    text-align: center;
}

.sv-home-chart-art {
    width: 52px;
    height: 52px;

    overflow: hidden;

    border-radius: var(--sv-radius-sm);

    background: var(--sv-surface-2);
}

.sv-home-chart-art img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.sv-home-chart-info {
    min-width: 0;
}

.sv-home-chart-track {
    overflow: hidden;

    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-sm);
    font-weight: var(--sv-weight-semibold);

    white-space: nowrap;
    text-overflow: ellipsis;
}

.sv-home-chart-artist {
    margin-top: 2px;

    overflow: hidden;

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);

    white-space: nowrap;
    text-overflow: ellipsis;
}

.sv-home-chart-change {
    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-xs);
}


/* ==========================================================================
   12. RADIO FEATURE
   ========================================================================== */

.sv-home-radio {
    position: relative;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 85% 50%,
            var(--sv-theme-glow),
            transparent 32%
        ),
        var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);
}

.sv-home-radio-inner {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(300px, 0.7fr);

    align-items: center;

    gap: var(--sv-space-10);

    padding: clamp(
        var(--sv-space-8),
        6vw,
        var(--sv-space-12)
    );
}

.sv-home-radio-label {
    color: var(--sv-theme-accent);

    font-size: var(--sv-font-size-xs);
    font-weight: var(--sv-weight-bold);

    letter-spacing: 0.14em;

    text-transform: uppercase;
}

.sv-home-radio-title {
    margin: var(--sv-space-3) 0 0;

    color: var(--sv-text-primary);

    font-size: clamp(
        2rem,
        5vw,
        3.5rem
    );

    font-weight: var(--sv-weight-bold);

    line-height: 1;

    letter-spacing: -0.045em;
}

.sv-home-radio-description {
    max-width: 600px;

    margin-top: var(--sv-space-4);

    color: var(--sv-text-secondary);

    font-size: var(--sv-font-size-md);

    line-height: var(--sv-line-relaxed);
}

.sv-home-radio-actions {
    display: flex;
    flex-wrap: wrap;

    gap: var(--sv-space-3);

    margin-top: var(--sv-space-6);
}


/* Radio visual */

.sv-home-radio-visual {
    position: relative;

    aspect-ratio: 1 / 1;

    display: flex;
    align-items: center;
    justify-content: center;
}

.sv-home-radio-disc {
    width: 72%;
    aspect-ratio: 1 / 1;

    border: 1px solid var(--sv-border);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            var(--sv-surface-3) 0 9%,
            var(--sv-surface-2) 10% 22%,
            var(--sv-surface) 23% 44%,
            transparent 45%
        );

    box-shadow:
        0 0 70px var(--sv-theme-glow);

    animation:
        sv-radio-spin 18s linear infinite;
}

.sv-home-radio-wave {
    position: absolute;

    width: 88%;
    aspect-ratio: 1 / 1;

    border: 1px solid var(--sv-theme-accent);

    border-radius: 50%;

    opacity: 0.25;

    animation:
        sv-radio-pulse 3.5s ease-out infinite;
}

.sv-home-radio-wave:nth-child(2) {
    animation-delay: 1.15s;
}

.sv-home-radio-wave:nth-child(3) {
    animation-delay: 2.3s;
}

@keyframes sv-radio-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes sv-radio-pulse {
    0% {
        transform: scale(0.55);
        opacity: 0.45;
    }

    70% {
        transform: scale(1);
        opacity: 0;
    }

    100% {
        transform: scale(1);
        opacity: 0;
    }
}


/* ==========================================================================
   13. COMMUNITY FEATURE
   ========================================================================== */

.sv-home-community {
    position: relative;
}

.sv-home-community-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: var(--sv-space-5);
}

.sv-home-community-card {
    position: relative;

    min-height: 230px;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    overflow: hidden;

    padding: var(--sv-space-6);

    background: var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-lg);

    transition:
        transform var(--sv-transition-normal),
        border-color var(--sv-transition-normal),
        box-shadow var(--sv-transition-normal);
}

.sv-home-community-card:hover {
    transform: translateY(-3px);

    border-color: var(--sv-border-light);

    box-shadow:
        var(--sv-shadow-md),
        0 0 28px var(--sv-theme-glow);
}

.sv-home-community-card-icon {
    position: absolute;

    top: var(--sv-space-6);
    right: var(--sv-space-6);

    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--sv-theme-accent);

    background: var(--sv-primary-soft);

    border-radius: 50%;
}

.sv-home-community-card-title {
    margin: 0;

    color: var(--sv-text-primary);

    font-size: var(--sv-font-size-xl);
    font-weight: var(--sv-weight-semibold);
}

.sv-home-community-card-description {
    max-width: 430px;

    margin-top: var(--sv-space-2);

    color: var(--sv-text-muted);

    font-size: var(--sv-font-size-sm);

    line-height: var(--sv-line-relaxed);
}

.sv-home-community-card-action {
    margin-top: var(--sv-space-5);
}


/* ==========================================================================
   14. CALL TO ACTION
   ========================================================================== */

.sv-home-cta {
    padding-bottom: var(--sv-space-20);
}

.sv-home-cta-inner {
    position: relative;

    overflow: hidden;

    padding:
        clamp(
            var(--sv-space-8),
            7vw,
            var(--sv-space-16)
        );

    text-align: center;

    background:
        radial-gradient(
            circle at 50% 0%,
            var(--sv-theme-glow),
            transparent 50%
        ),
        var(--sv-surface);

    border: 1px solid var(--sv-border);

    border-radius: var(--sv-radius-xl);

    box-shadow: var(--sv-shadow-lg);
}

.sv-home-cta-inner::before {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            135deg,
            transparent 30%,
            var(--sv-theme-glow) 50%,
            transparent 70%
        );

    opacity: 0.12;
}

.sv-home-cta-content {
    position: relative;

    z-index: 2;

    max-width: 760px;

    margin: 0 auto;
}

.sv-home-cta-title {
    margin: 0;

    color: var(--sv-text-primary);

    font-size: clamp(
        2rem,
        5vw,
        3.5rem
    );

    font-weight: var(--sv-weight-bold);

    letter-spacing: -0.045em;
}

.sv-home-cta-description {
    max-width: 620px;

    margin: var(--sv-space-4) auto 0;

    color: var(--sv-text-secondary);

    font-size: var(--sv-font-size-md);

    line-height: var(--sv-line-relaxed);
}

.sv-home-cta-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    gap: var(--sv-space-3);

    margin-top: var(--sv-space-7);
}


/* ==========================================================================
   15. MUSIC GRID RESPONSIVENESS
   ========================================================================== */

@media (max-width: 1200px) {

    .sv-home-artist-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

    .sv-home-release-grid {
        grid-template-columns:
            repeat(
                4,
                minmax(0, 1fr)
            );
    }

    .sv-home-discovery-inner {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

    .sv-home-discovery-item:nth-child(3) {
        border-right: 0;
    }
}


/* ==========================================================================
   16. TABLET
   ========================================================================== */

@media (max-width: 992px) {

    .sv-home-hero {
        min-height: auto;

        padding-top: var(--sv-space-16);
        padding-bottom: var(--sv-space-16);
    }

    .sv-home-hero-inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .sv-home-hero-content {
        max-width: 760px;

        margin: 0 auto;
    }

    .sv-home-hero-eyebrow {
        justify-content: center;
    }

    .sv-home-hero-description {
        margin-left: auto;
        margin-right: auto;
    }

    .sv-home-hero-actions,
    .sv-home-hero-links {
        justify-content: center;
    }

    .sv-home-hero-stats {
        justify-content: center;
    }

    .sv-home-hero-art {
        width: min(
            600px,
            88vw
        );

        justify-self: center;
    }

    .sv-home-featured-grid {
        grid-template-columns: 1fr;
    }

    .sv-home-chart-layout {
        grid-template-columns: 1fr;
    }

    .sv-home-radio-inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .sv-home-radio-description {
        margin-left: auto;
        margin-right: auto;
    }

    .sv-home-radio-actions {
        justify-content: center;
    }

    .sv-home-radio-visual {
        width: min(
            420px,
            75vw
        );

        margin: 0 auto;
    }

    .sv-home-community-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .sv-home-release-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}


/* ==========================================================================
   17. MOBILE
   ========================================================================== */

@media (max-width: 768px) {

    .sv-home-section {
        padding-top: var(--sv-space-12);
        padding-bottom: var(--sv-space-12);
    }

    .sv-home-section:first-child {
        padding-top: var(--sv-space-5);
    }

    .sv-home-section-header {
        align-items: flex-start;

        flex-direction: column;

        gap: var(--sv-space-3);
    }

    .sv-home-section-action {
        width: 100%;
    }

    .sv-home-hero {
        padding-top: var(--sv-space-12);
        padding-bottom: var(--sv-space-12);
    }

    .sv-home-hero-title {
        font-size: clamp(
            2.75rem,
            13vw,
            4.5rem
        );
    }

    .sv-home-hero-actions {
        flex-direction: column;
    }

    .sv-home-hero-actions .sv-btn {
        width: 100%;
    }

    .sv-home-hero-links {
        gap: var(--sv-space-4);
    }

    .sv-home-hero-stats {
        gap: var(--sv-space-5);
    }

    .sv-home-hero-art {
        width: 92vw;
    }

    .sv-home-hero-now-playing {
        right: 2%;
        bottom: 3%;

        width: 58%;
    }

    .sv-home-discovery {
        margin-top: 0;
    }

    .sv-home-discovery-inner {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .sv-home-discovery-item {
        border-bottom: 1px solid var(--sv-border);
    }

    .sv-home-discovery-item:nth-child(2n) {
        border-right: 0;
    }

    .sv-home-discovery-item:last-child {
        border-bottom: 0;
    }

    .sv-home-featured-track {
        min-height: 380px;
    }

    .sv-home-featured-track-content {
        padding: var(--sv-space-6);
    }

    .sv-home-artist-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .sv-home-release-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .sv-home-chart-item {
        grid-template-columns:
            30px
            48px
            minmax(0, 1fr);
    }

    .sv-home-chart-change {
        display: none;
    }

    .sv-home-community-grid {
        grid-template-columns: 1fr;
    }

    .sv-home-cta {
        padding-bottom: var(--sv-space-12);
    }
}


/* ==========================================================================
   18. SMALL MOBILE
   ========================================================================== */

@media (max-width: 480px) {

    .sv-home-section {
        padding-top: var(--sv-space-10);
        padding-bottom: var(--sv-space-10);
    }

    .sv-home-section-title {
        font-size: 1.65rem;
    }

    .sv-home-hero-title {
        font-size: 2.65rem;

        letter-spacing: -0.055em;
    }

    .sv-home-hero-description {
        font-size: var(--sv-font-size-sm);
    }

    .sv-home-hero-links {
        flex-direction: column;
        align-items: center;
    }

    .sv-home-hero-art {
        width: 96vw;
    }

    .sv-home-hero-now-playing {
        width: 70%;
    }

    .sv-home-discovery-inner {
        grid-template-columns: 1fr;
    }

    .sv-home-discovery-item {
        min-height: 78px;

        border-right: 0;
        border-bottom: 1px solid var(--sv-border);
    }

    .sv-home-discovery-item:last-child {
        border-bottom: 0;
    }

    .sv-home-featured-track {
        min-height: 340px;
    }

    .sv-home-featured-track-title {
        font-size: 1.75rem;
    }

    .sv-home-artist-grid {
        grid-template-columns: 1fr;
    }

    .sv-home-release-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: var(--sv-space-3);
    }

    .sv-home-chart-feature {
        min-height: 340px;
    }

    .sv-home-chart-feature-content {
        padding: var(--sv-space-6);
    }

    .sv-home-radio-inner {
        padding: var(--sv-space-6);
    }

    .sv-home-radio-title {
        font-size: 2rem;
    }

    .sv-home-radio-visual {
        width: 78vw;
    }

    .sv-home-community-card {
        min-height: 210px;

        padding: var(--sv-space-5);
    }

    .sv-home-cta-inner {
        padding:
            var(--sv-space-8)
            var(--sv-space-5);
    }

    .sv-home-cta-title {
        font-size: 2rem;
    }
}


/* ==========================================================================
   19. ACCESSIBILITY
   ========================================================================== */

.sv-home a:focus-visible,
.sv-home button:focus-visible {
    outline: 2px solid var(--sv-theme-accent);

    outline-offset: 3px;
}


/* ==========================================================================
   20. REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    .sv-home-radio-disc,
    .sv-home-radio-wave {
        animation: none;
    }

    .sv-home-hero-artwork,
    .sv-home-featured-track-artwork img,
    .sv-home-community-card {
        transition: none;
    }
}