/*
=================================================================
STYLE.CSS - MODULAR WEBSITE THEME
-----------------------------------------------------------------
Version: 5.3 (Full-Width Navbar)
Author: RoseTV
Last Updated: July 17, 2025
=================================================================
*/

/* --- 1. :root Variables & Global Setup --- */
:root {
    /* Color Palette */
    --color-bg: #0D0D10;
    --color-surface: rgba(22, 22, 28, 0.65);
    --color-surface-solid: #16161C;
    --color-border: rgba(138, 118, 255, 0.2);
    --color-text-primary: #F0F0F5;
    --color-text-secondary: #A0A0B0;
    --color-accent-glow: #8A76FF;

    /* Typography */
    --font-primary: 'Inter', sans-serif;
    --font-secondary: 'Josefin Sans', sans-serif;
}

body {
    font-family: var(--font-primary);
    background-color: var(--color-bg);
    color: var(--color-text-primary);
    padding: 0;
    margin: 0;
    background-image:
        radial-gradient(ellipse 80% 80% at 20% -10%, rgba(138, 76, 255, 0.15), transparent),
        radial-gradient(ellipse 80% 80% at 80% 110%, rgba(0, 153, 255, 0.15), transparent);
    background-attachment: fixed;
}


/* --- 2. Page Layout & Demo Structure --- */
main, .art-main, .show-main {
    max-width: 1200px;
    width: 100%;
    margin: 2rem auto;
    padding: 2rem;
    box-sizing: border-box;
}
.blog-post-body {
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.7;
    font-size: 1.1rem;
}
.blog-post-body a { color: var(--color-accent-glow); text-decoration: none; }
.blog-post-body a:hover { text-decoration: underline; }


/* --- 3. Navbar Component --- */
.site-nav {
    background-color: var(--color-surface-solid);
    border-bottom: 1px solid var(--color-border);
    position: sticky;
    top: 0;
    z-index: 100;
}
.nav-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 70px;
    padding: 0 2rem;
}


/* --- 3. Author Card Components --- */
sc-big, sc-medium {
    display: flex;
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
}
sc-minimal {
    display: inline-flex;
    position: relative;
    vertical-align: middle;
}

/* Glow & Banner Effects */
sc-big::after, sc-medium::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--banner-img);
    background-size: cover;
    background-position: center;
    opacity: 0.25;
    transition: opacity 0.5s ease;
    z-index: 0;
}
sc-big::before, sc-medium::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
    background: radial-gradient(
        600px circle at var(--mouse-x) var(--mouse-y),
        rgba(138, 118, 255, 0.25),
        transparent 40%
    );
    z-index: 1;
}
sc-big:hover::before, sc-medium:hover::before { opacity: 1; }
sc-big:hover::after, sc-medium:hover::after { opacity: 0.4; }

/* Content Styles */
.author-box-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    padding: 1.5rem;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
}
.pfp-img {
    border-radius: 50%;
    width: 100px;
    height: 100px;
    object-fit: cover;
    border: 2px solid var(--color-border);
}
.pfp-container { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.mtt-text { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; text-align: center; width: 100%; }
.mtt-text p a { color: var(--color-accent-glow); }
.mtt-others { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 1rem; }
.mtt-others img { width: 30px; height: 30px; border-radius: 50%; }
.mtt-social { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 1rem; }
.mtt-social a {
    color: var(--color-text-primary);
    font-size: 24px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.05);
    transition: background-color 0.3s ease, color 0.3s ease;
    text-decoration: none;
}
.mtt-social a:hover { background-color: rgba(255, 255, 255, 0.15); color: var(--color-accent-glow); }

.author-box-content h1 { 
    font-family: var(--font-secondary); 
    font-size: clamp(1.5rem, 4vw, 2.5rem); 
    margin: 0;
    /* FIXED: Removed the overflow-wrap property. */
    /* The text will not wrap by default, allowing JS to scale it. */
    white-space: nowrap;
}
.author-box-content h2 { 
    font-family: var(--font-secondary); 
    font-size: clamp(1.25rem, 5vw, 1.75rem); 
    margin: 0.5rem 0 0 0; 
}
.author-subtitle { 
    font-size: clamp(0.8rem, 2vw, 0.9rem); 
    color: var(--color-text-secondary); 
    margin: 0 0 0.5rem 0; 
    font-style: italic; 
}

/* Variant-specific styles */
sc-big > .author-box-content.big { flex-direction: row; align-items: center; gap: 2rem; }
sc-big > .author-box-content.big .mtt-text { text-align: left; }
sc-big > .author-box-content.big .mtt-social { flex-direction: column; }

.minimal-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.25rem 0.75rem;
    background: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 2rem;
}
.minimal-trigger .pfp-img { width: 24px; height: 24px; border: none; }

/* Dynamic Popup for Author Cards */
.dynamic-author-popup {
    position: absolute;
    width: 550px;
    max-width: 90vw;
    z-index: 1000;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s 0.3s;
    opacity: 0;
    visibility: hidden;
    transform: scale(0.95) translateY(10px);
}
.dynamic-author-popup.active {
    opacity: 1;
    visibility: visible;
    transform: scale(1) translateY(0);
    transition-delay: 0s;
}
.dynamic-author-popup .author-box-content.big .mtt-social { flex-direction: row; }

.gallery-button {
    display: inline-block; /* Changed from block to flow better with text */
    margin-top: 1rem; /* Reduced top margin */
    padding: 0.75rem 1.5rem; /* Increased padding slightly */
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    text-align: center;
    text-decoration: none;
    color: var(--color-text-primary);
    font-weight: bold;
    transition: background-color 0.3s ease;
}
.gallery-button:hover {
    background-color: rgba(255, 255, 255, 0.1);
}


/* --- 4. Show Page & Gallery Styles --- */
.show-header, .art-main {
    width: 100%;
    margin: 0 auto;
}
.show-main, .art-main {
    max-width: 1200px;
    padding: 2rem;
}
.show-header {
    height: 400px;
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 2rem;
    box-sizing: border-box;
    position: relative;
}
.show-header::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(13, 13, 16, 1) 0%, rgba(13, 13, 16, 0) 50%);
}
.header-info { display: flex; justify-content: space-between; align-items: center; z-index: 2; }
.header-info .mtt-social { margin: 0; }
.last-updated { font-style: italic; color: var(--color-text-secondary); }

.show-details-section { background-color: var(--color-surface-solid); padding: 2rem; border-radius: 1rem; margin-bottom: 3rem; }
.show-meta { margin: 0.5rem 0 1.5rem 0; color: var(--color-text-secondary); display: flex; gap: 1rem; align-items: center; }
.show-synopsis { line-height: 1.6; max-width: 80ch; }
.show-credits { margin-top: 1.5rem; }

.expandable-section { margin-top: 1rem; }
.expand-button {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    cursor: pointer;
    font-size: 1rem;
    width: 100%;
    text-align: left;
    transition: background-color 0.3s;
}
.expand-button:hover { background-color: rgba(255, 255, 255, 0.1); }
.expandable-content { max-height: 0; overflow: hidden; transition: max-height 0.5s ease-out; display: flex; flex-wrap: wrap; gap: 1rem; padding-top: 0; }
.expandable-content.open { max-height: 1000px; padding-top: 1rem; }

.episode-section, .other-shows-section { margin-bottom: 3rem; }
.episode-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
.episode-card { background-color: var(--color-surface-solid); border-radius: 0.5rem; overflow: hidden; text-decoration: none; color: var(--color-text-primary); transition: transform 0.3s; }
.episode-card:hover { transform: translateY(-5px); }
.episode-card img { width: 100%; height: auto; display: block; }
.episode-info { padding: 1rem; }
.episode-info h3 { margin: 0 0 0.25rem 0; }
.episode-meta { font-size: 0.9rem; color: var(--color-text-secondary); }


/* --- 5. Art & Show Card Grid Styles --- */
.art-main h1, #gallery-view h1, .other-shows-section h2, .episode-section h2, .portfolio-title {
    font-family: var(--font-secondary);
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 2rem;
}
.other-shows-section h2, .episode-section h2 { text-align: left; }

#show-gallery-grid, #other-shows-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem;
}

.artist-gallery-grid { 
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
}

.artist-gallery-grid sc-medium {
    width: 280px; /* Use a fixed width for consistency */
    justify-self: center; /* Center the card in the grid cell */
    cursor: pointer;
}

.art-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

/* This tells the <art-gallery> component to act as a "ghost" element.
  It passes its children (the <art-card>s) up to the parent grid for layout,
  solving the wrapping issue.
*/
.art-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1.5rem;
}

art-gallery {
    display: contents;
}

art-card {
    break-inside: avoid;
    margin-bottom: 1rem;
    cursor: pointer;
}

/* This section enforces the square aspect ratio */
.art-card-image-wrapper {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    aspect-ratio: 1 / 1; /* Creates the square shape */
    background-color: var(--color-surface-solid);
}
.art-card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Crops the image to fit the square */
    transition: transform 0.4s ease;
}
art-card:hover img {
    transform: scale(1.05);
}

/* Styles for the new "View" overlay */
.view-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 2.5rem;
    opacity: 0; /* Hidden by default */
    transition: opacity 0.3s ease;
    pointer-events: none;
}
art-card:hover .view-overlay {
    opacity: 1; /* Show on hover */
}

.art-card-title {
    margin-top: 0.75rem;
    font-weight: bold;
}


/* --- 6. 3D Show Card Component --- */
show-card { 
    display: block; 
}

.show-card-link { 
    display: flex;
    flex-direction: column;
    height: 100%; /* Make the link fill the entire grid cell */
    text-decoration: none; 
    color: var(--color-text-primary); 
    outline: none; 
}

.show-card-poster {
    position: relative;
    width: 100%;
    padding-top: 177.77%; /* 9:16 Aspect Ratio */
    background-size: cover;
    background-position: center;
    border-radius: 0.5rem;
    transition: transform 0.1s linear;
    transform-style: preserve-3d;
    overflow: hidden;
    flex-grow: 1; 
}

.show-card-shine { 
    position: absolute; 
    inset: 0; 
    opacity: 0.3; 
    mix-blend-mode: screen; 
    pointer-events: none; 
}

.show-card-title { 
    margin-top: 0.75rem; 
    font-size: 1rem; 
    text-align: center; 
    /* Allow for up to two lines of text without changing card size */
    min-height: 2.5em; 
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (hover: none) {
    .show-card-poster { transform: none !important; }
    .show-card-shine { display: none; }
}


/* --- 7. SPA & Utility Styles --- */
.hidden { display: none !important; }

.back-button {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);
    padding: 0.75rem 1.5rem;
    border-radius: 0.5rem;
    cursor: pointer;
    font-size: 1rem;
    margin-top: 2rem; /* Pushes it down from the content above */
    margin-bottom: 2rem;
    transition: background-color 0.3s;
    display: inline-block; /* Ensures margin is applied correctly */
}
.back-button:hover { background-color: rgba(255, 255, 255, 0.1); }

#loading-indicator, #error-view {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
    text-align: center;
}
.spinner {
    width: 50px;
    height: 50px;
    border: 5px solid var(--color-border);
    border-top-color: var(--color-accent-glow);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 1rem;
}
@keyframes spin { to { transform: rotate(360deg); } }
#error-view h1 { color: #ff5555; font-family: var(--font-secondary); }
#error-message {
    color: var(--color-text-secondary);
    font-family: monospace;
    background: var(--color-surface-solid);
    padding: 1rem;
    border-radius: 0.5rem;
    max-width: 600px;
    margin-top: 1rem;
    margin-bottom: 2rem;
}


.artist-gallery-grid { 
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
}


.author-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    justify-items: center; /* Center the cards in their grid cells */
}

/* Constrain the width of medium cards inside these grids */
.artist-gallery-grid sc-medium,
.author-card-grid sc-medium {
    width: 100%;
    max-width: 320px;
    cursor: pointer;
}

/* --- NEW: Featured/Random Art Sections --- */
.art-feature-section {
    margin-bottom: 4rem;
    padding: 2rem;
    background-color: var(--color-surface-solid);
    border-radius: 1rem;
}
.art-feature-section h2 {
    font-family: var(--font-secondary);
    font-size: 2rem;
    text-align: center;
    margin: 0 0 1.5rem 0;
}
.art-feature-wrapper {
    max-width: 500px; /* Constrain the width of the featured card */
    margin: 0 auto; /* Center it */
}
.card-grid-container {
    display: grid;
    /* This creates responsive columns. They will be at least 180px wide,
       but will grow to fill the space evenly. */
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem; /* The space between the cards */
    padding: 1rem;
}



/*
=================================================================
--- INTERACTIVE LIGHTBOX/CAROUSEL STYLES ---
=================================================================
*/
.art-lightbox {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    animation: lightbox-fade-in 0.3s ease;
}
@keyframes lightbox-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
}
.lightbox-content img {
    max-width: 100%;
    max-height: 75vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 0.5rem;
    user-select: none; /* Prevents image dragging */
}
.lightbox-info {
    color: white;
    text-align: center;
}
.lightbox-info h2 {
    margin: 0;
    font-family: var(--font-secondary);
}
.lightbox-info p {
    margin: 0.5rem 0 0 0;
    color: var(--color-text-secondary);
}

/* Navigation & Close Buttons */
.lightbox-close, .lightbox-nav {
    position: absolute;
    background: rgba(0, 0, 0, 0.3);
    color: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    font-size: 2rem;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.2s;
    z-index: 2001;
}
.lightbox-close:hover, .lightbox-nav:hover {
    background: rgba(0, 0, 0, 0.6);
}

.lightbox-close {
    top: 15px;
    right: 15px;
}
.lightbox-prev {
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
}
.lightbox-next {
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
}


/* --- NEW: Featured Art Grid Component --- */
featured-art-grid {
    display: grid;
    /* Use the --grid-cols variable set by the JS, with a fallback of 3 */
    grid-template-columns: repeat(var(--grid-cols, 3), 1fr);
    gap: 1.5rem;
}

/* On mobile, force the grid into a single column */
@media (max-width: 768px) {
    featured-art-grid {
        grid-template-columns: 1fr;
    }
}
/*
=================================================================
--- SITE NAVIGATION STYLES ---
=================================================================
*/

/* --- Main Navbar Container --- */
.site-nav {
    background-color: var(--color-surface-solid);
    border-bottom: 1px solid var(--color-border);
    position: sticky;
    top: 0;
    z-index: 100;
}
.nav-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 70px;
    padding: 0 2rem;
}
/* --- Logo --- */
.nav-logo img {
    height: 50px;
    width: auto;
}

/* --- Main Menu (Desktop) --- */
.nav-list {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 2rem;
}
.nav-link {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-weight: bold;
    transition: color 0.3s ease;
}
.nav-link:hover, .nav-link.active {
    color: var(--color-text-primary);
}
.nav-link i {
    font-size: 0.7em;
    margin-left: 0.25rem;
}

/* --- Dropdowns --- */
.nav-dropdown {
    position: relative;
}
.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    list-style: none;
    padding: 0.5rem;
    margin-top: 0.5rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s 0.3s;
}
.nav-dropdown:hover .dropdown-menu,
.nav-dropdown.active .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}
.dropdown-menu a {
    display: block;
    padding: 0.5rem 1rem;
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: 0.25rem;
}
.dropdown-menu a:hover {
    background-color: var(--color-surface);
    color: var(--color-text-primary);
}

/* --- Socials & Hamburger Toggle --- */
.nav-socials {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: var(--color-text-secondary);
}
.nav-socials .mtt-social {
    margin: 0;
}
.nav-toggle {
    display: none; /* Hidden on desktop */
    font-size: 1.5rem;
    cursor: pointer;
}

/* --- Mobile / Responsive Styles --- */
@media (max-width: 1024px) {
    .nav-menu {
        position: fixed;
        top: 70px; /* Below the navbar */
        left: -100%; /* Start off-screen */
        width: 80%;
        max-width: 300px;
        height: calc(100vh - 70px);
        background-color: var(--color-surface-solid);
        border-right: 1px solid var(--color-border);
        transition: left 0.4s ease;
        overflow-y: auto;
    }
    .nav-menu.active {
        left: 0;
    }
    .nav-list {
        flex-direction: column;
        align-items: flex-start;
        padding: 2rem;
    }
    .nav-socials {
        display: none; /* Hide desktop socials */
    }
    .nav-toggle {
        display: block; /* Show hamburger */
    }
    .dropdown-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        border: none;
        background: none;
        padding-left: 1rem;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease-out;
    }
    .nav-dropdown.active .dropdown-menu {
        max-height: 200px;
    }
}

/*
=================================================================
--- TEXT FORMAT COMPONENT STYLES ---
=================================================================
*/

/* --- Global Styles for Slotted Content --- */
/* These rules style the content you place INSIDE the text components */

/* Headers */
h1.showcase-heading, h2.showcase-heading {
    font-family: var(--font-secondary);
    font-size: 2.5rem;
    margin: 0 0 1rem 0;
}

/* Paragraphs */
p.showcase-text, p.text-block-p {
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin: 0 0 1.5rem 0;
}

/* Buttons */
a.showcase-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    text-decoration: none;
    color: var(--color-text-primary);
    font-weight: bold;
    transition: background-color 0.3s ease;
}
a.showcase-button:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* Text Block Specifics */
hr.styled-divider {
    border: none;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--color-border), transparent);
    margin: 2rem 0;
}

strong.attention {
    color: var(--color-accent-glow);
}

/* Featured Block Specifics */
h1.featured-heading, h2.featured-heading {
    color: #ffd700;
    font-family: var(--font-secondary);
    text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
}
/*
=================================================================
--- NEW HOMEPAGE STYLES (MODERN) ---
=================================================================
*/

/* --- Modern Hero Section --- */
.modern-hero {
    width: 100%;
    padding: 0; /* Remove any padding to ensure it's edge-to-edge */
}

/* This is the new banner element */
.hero-banner-content {
    width: 100%;
    height: 500px; /* Control the height of the banner here */
    
    /* Logo is now the background image */
    background-image: url('/img/banner.webp');
    
    /* This crops and centers the image */
    background-size: cover;
    background-position: center;

    /* This positions the tagline text on top */
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

/* This adds a subtle dark overlay to make the text more readable */
.hero-banner-content::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
}

.hero-tagline {
    font-family: var(--font-secondary);
    font-size: 2.5rem; /* Larger font size */
    color: white;
    text-shadow: 0 2px 10px rgba(0,0,0,0.7); /* Add a shadow for readability */
    margin: 0;
    z-index: 1; /* Ensure text is above the overlay */
    position: relative;
}

/* --- Homepage Main Content Layout --- */
.homepage-main {
    max-width: 1200px;
    margin: 4rem auto;
    padding: 0 2rem;
}
.homepage-section {
    margin-bottom: 5rem;
}
.homepage-section-title {
    font-family: var(--font-secondary);
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 2rem;
    position: relative;
}
.homepage-section-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 2px;
    background: var(--color-accent-glow);
    margin: 1rem auto 0 auto;
    opacity: 0.5;
}

/* --- Wrapper for single featured cards --- */
.featured-show-wrapper {
    max-width: 350px;
    margin: 0 auto;
}

/*
=================================================================
--- NEW HOMEPAGE STYLES (COMPACT) ---
=================================================================
*/

/* --- Two-Column Grid Layout --- */
.homepage-grid {
    display: grid;
    grid-template-columns: 2fr 1fr; /* Left column is twice as wide as the right */
    gap: 3rem;
}
/* On mobile, stack the columns */
@media (max-width: 1024px) {
    .homepage-grid {
        grid-template-columns: 1fr;
    }
}

/* --- Latest Episodes List --- */
.episode-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: 0.5rem;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: background-color 0.3s ease;
    border-bottom: 1px solid var(--color-border);
}
.episode-row:hover {
    background-color: var(--color-surface);
}
.episode-row-thumb {
    width: 120px;
    height: 68px;
    object-fit: cover;
    border-radius: 0.25rem;
    flex-shrink: 0;
}
.episode-row-info {
    flex-grow: 1;
}
.episode-row-channel {
    margin: 0 0 0.25rem 0;
    font-size: 0.8rem;
    font-weight: bold;
    color: var(--color-accent-glow);
    text-transform: uppercase;
}

.episode-row-title {
    margin: 0;
    font-size: 1rem;
    font-weight: bold;
    color: var(--color-text-primary);
}
.episode-row-meta {
    margin: 0.25rem 0 0 0;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}
.episode-row-arrow {
    font-size: 1.5rem;
    color: var(--color-text-secondary);
    transition: transform 0.3s ease;
}
.episode-row:hover .episode-row-arrow {
    transform: translateX(5px);
    color: var(--color-accent-glow);
}

/* --- Calendar CTA --- */
.calendar-cta {
    display: block;
    padding: 2rem;
    background: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    text-align: center;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.calendar-cta:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
.calendar-cta h3 {
    margin: 0 0 0.5rem 0;
    font-family: var(--font-secondary);
    font-size: 1.5rem;
    color: var(--color-text-primary);
}
.calendar-cta p {
    margin: 0;
    color: var(--color-text-secondary);
}

/* --- Random Art Grid --- */
.random-art-grid-wrapper random-art-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

/*
=================================================================
--- HOMEPAGE FEATURES STYLES ---
=================================================================
*/

.episode-row-channel {
    margin: 0 0 0.25rem 0;
    font-size: 0.8rem;
    font-weight: bold;
    color: var(--color-accent-glow);
    text-transform: uppercase;
}

.episode-row-title {
    margin: 0;
    font-size: 1rem;
    font-weight: bold;
    color: var(--color-text-primary);
}

/*
=================================================================
--- CALENDAR PAGE & COMPONENT STYLES ---
=================================================================
*/

/* --- Full Calendar Page --- */
.calendar-main {
    max-width: 1400px;
}
.calendar-title {
    font-family: var(--font-secondary);
    font-size: 3rem;
    text-align: center;
    margin-bottom: 2rem;
}
.google-calendar-container {
    position: relative;
    padding-bottom: 75%; /* 4:3 aspect ratio */
    height: 0;
    overflow: hidden;
}
.google-calendar-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
}

/* --- Upcoming Event Component (Homepage) --- */
.upcoming-event-cta {
    display: block;
    padding: 2rem;
    background: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    text-align: center;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.upcoming-event-cta:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
.upcoming-event-cta h3 {
    margin: 0 0 1rem 0;
    font-family: var(--font-secondary);
    font-size: 1.2rem;
    color: var(--color-accent-glow);
    text-transform: uppercase;
}
.upcoming-event-cta .event-title {
    margin: 0 0 0.5rem 0;
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--color-text-primary);
}
.upcoming-event-cta .event-date {
    margin: 0;
    color: var(--color-text-secondary);
}

/*
=================================================================
--- NEWS TICKER & LIGHTBOX STYLES (UPDATED) ---
=================================================================
*/

/* --- News Ticker (Homepage) --- */
news-ticker {
    display: block;
    background: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    padding: 1.5rem;
}
.news-ticker-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
}
.news-ticker-header h3 {
    margin: 0;
    font-family: var(--font-secondary);
    color: var(--color-accent-glow);
    text-transform: uppercase;
}
.news-ticker-header span {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}
.news-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.news-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0;
}
.news-item:not(:last-child) {
    border-bottom: 1px solid var(--color-border);
}

.news-item-thumb {
    width: 50px;
    height: 50px;
    object-fit: cover;
    border-radius: 0.25rem;
    flex-shrink: 0;
}
.news-item-info {
    flex-grow: 1; /* Allow text to take up available space */
}
.news-item-info h4 {
    margin: 0 0 0.25rem 0;
    font-size: 1rem;
}
.news-item-info p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
}
.read-more-btn {
    background: none;
    border: none;
    color: var(--color-accent-glow);
    cursor: pointer;
    font-weight: bold;
    white-space: nowrap;
}

/* --- News Article Lightbox --- */
.news-lightbox {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    animation: lightbox-fade-in 0.3s ease;
}
.news-lightbox-content {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    max-width: 800px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}

.news-lightbox-banner {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}
.news-lightbox-text {
    padding: 2rem 3rem;
}
.news-title {
    font-family: var(--font-secondary);
    font-size: 2.5rem;
    margin: 0 0 0.5rem 0;
}
.news-meta {
    color: var(--color-text-secondary);
    margin-bottom: 1.5rem;
}
.news-full-content p {
    line-height: 1.7;
    margin-bottom: 1rem;
}
/* NEW: Style for buttons inside the article content */
.news-full-content .gallery-button {
    margin-top: 1rem;
}

/*
=================================================================
--- NEWS TICKER, ARCHIVE & PAGINATION STYLES ---
=================================================================
*/

/* --- News Ticker (Homepage) --- */
/* ... [Existing news-ticker styles] ... */
.ticker-pagination {
    display: flex;
    gap: 0.5rem;
}
.ticker-pagination button {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    cursor: pointer;
}
.view-all-news-btn {
    display: block;
    text-align: center;
    margin-top: 1rem;
    color: var(--color-accent-glow);
    font-weight: bold;
    text-decoration: none;
}

/* --- News Archive Page --- */
.news-archive-main {
    max-width: 900px;
}
.news-archive-item {
    display: grid;
    grid-template-columns: 120px 1fr auto;
    gap: 1.5rem;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--color-border);
}
.archive-item-date {
    font-weight: bold;
    color: var(--color-text-secondary);
}
.archive-item-title {
    font-size: 1.1rem;
    font-weight: bold;
}
.archive-item-author {
    font-style: italic;
    color: var(--color-text-secondary);
}

/* --- Pagination Controls (Archive Page) --- */
.pagination-controls {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
}
.pagination-controls button {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);
    border-radius: 0.25rem;
    min-width: 40px;
    height: 40px;
    cursor: pointer;
}
.pagination-controls button:hover {
    background-color: var(--color-accent-glow);
}


/* --- Recently Updated Shows Grid --- */
.recently-updated-grid {
    display: grid;
    /* Default to 2 columns for tablet size */
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

/* On larger desktop screens, show 4 cards to make them smaller */
@media (min-width: 1024px) {
    .recently-updated-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* On mobile, stack to a single column */
@media (max-width: 480px) {
    .recently-updated-grid {
        grid-template-columns: 1fr;
    }
}

.recently-updated-grid recently-updated-shows {
    /* This tells the component to span all columns of its parent grid */
    grid-column: 1 / -1;
    /* This makes the component itself a grid */
    display: grid;
    grid-template-columns: subgrid; /* Inherit columns from the parent */
    gap: inherit; /* Inherit gap from the parent */
}


/* --- Site Footer --- */
.site-footer {
    background-color: var(--color-surface-solid);
    border-top: 1px solid var(--color-border);
    padding: 2rem;
    margin-top: 4rem;
}
.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}
.footer-socials .mtt-social {
    justify-content: center;
}
.footer-links {
    margin: 1.5rem 0;
    display: flex;
    justify-content: center;
    gap: 2rem;
}
.footer-links a {
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
}
.footer-links a:hover {
    color: var(--color-text-primary);
}
.footer-copyright {
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    opacity: 0.7;
}

/*
=================================================================
--- SHOWS GALLERY PAGE STYLES (UPDATED) ---
=================================================================
*/
.promo-banner {
    display: block;
    margin-bottom: 3rem;
    border-radius: 1rem;
    overflow: hidden;
}
.promo-banner img {
    width: 100%;
    display: block;
}

.gallery-section {
    margin-bottom: 4rem;
}
.gallery-section-title {
    font-family: var(--font-secondary);
    font-size: 2rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.5rem;
}

.episode-row-container {
    display: grid;
    /* On desktop, show 5 episodes in a row */
    grid-template-columns: repeat(5, 1fr);
    gap: 1.5rem;
}
/* Make the components span the grid */
.episode-row-container most-viewed-episodes,
.episode-row-container random-episodes {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: subgrid;
    gap: inherit;
}

/* Responsive adjustments for episode rows */
@media (max-width: 1200px) {
    .episode-row-container { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .episode-row-container { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
    .episode-row-container { grid-template-columns: 1fr; }
}

/*
=================================================================
--- STATIC PAGE STYLES (STAFF, TERMS, ETC.) ---
=================================================================
*/
.text-page-main {
    max-width: 900px;
}
.text-page-main h1 {
    font-family: var(--font-secondary);
    font-size: 3rem;
    text-align: center;
    margin-bottom: 0.5rem;
}
.page-subtitle {
    text-align: center;
    color: var(--color-text-secondary);
    margin-top: 0;
    margin-bottom: 3rem;
}
.staff-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

/* --- Big Author Card (Desktop) --- */
sc-big > .author-box-content.big {
    display: flex;
    flex-direction: row; /* Horizontal layout on desktop */
    align-items: center;
    gap: 2rem;
}
sc-big > .author-box-content.big .mtt-text {
    text-align: left;
}
sc-big > .author-box-content.big .mtt-social {
    flex-direction: column; /* Vertical social links on desktop */
}

/* --- Minimal Author Card --- */
.minimal-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.25rem 0.75rem;
    background: var(--color-surface-solid);
    border: 1px solid var(--color-border);
    border-radius: 2rem;
}
.minimal-trigger .pfp-img { 
    width: 24px; 
    height: 24px; 
    border: none; 
}

@media (max-width: 768px) {
    /* Big author card stacking */
    sc-big > .author-box-content.big {
        flex-direction: column;
        align-items: center;
    }
    sc-big > .author-box-content.big .mtt-text {
        text-align: center;
    }
    sc-big > .author-box-content.big .mtt-social {
        flex-direction: row;
        margin-top: 1.5rem;
    }

    /* FIXED: Allow show card titles to wrap onto multiple lines on mobile */
    .show-card-title {
        white-space: normal; /* Allow text to wrap */
        overflow: visible;
        text-overflow: clip;
        min-height: 2.4em; /* Reserve space for up to two lines to prevent layout shifts */
    }
}

/*
=================================================================
--- ART GALLERY & PORTFOLIO STYLES (UPDATED) ---
=================================================================
*/

/* --- Artist Banner --- */
.artist-banner {
    width: 100%;
    height: 300px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.artist-banner-overlay {
    background: linear-gradient(to top, rgba(13, 13, 16, 1) 0%, rgba(13, 13, 16, 0.5) 70%, rgba(13, 13, 16, 0) 100%);
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 2rem;
}
.artist-banner-overlay h1 {
    font-family: var(--font-secondary);
    font-size: 3.5rem;
    color: white;
    text-shadow: 0 2px 10px black;
    margin: 0;
}

/* --- Portfolio Controls (Filters & Sort) --- */
.portfolio-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 2rem 0;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--color-border);
}
.filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.filter-btn {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
    padding: 0.5rem 1rem;
    border-radius: 2rem;
    cursor: pointer;
    font-weight: bold;
    transition: all 0.3s ease;
}
.filter-btn:hover {
    background-color: var(--color-surface-solid);
    color: var(--color-text-primary);
}
.filter-btn.active {
    background-color: var(--color-accent-glow);
    color: white;
    border-color: var(--color-accent-glow);
}
.sort-select {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-primary);
    padding: 0.5rem;
    border-radius: 0.5rem;
}

/* --- Portfolio Header --- */
.portfolio-header {
    margin-bottom: 2rem;
}
.portfolio-header h2 {
    font-family: var(--font-secondary);
    font-size: 2rem;
    text-align: center;
}

/*
=================================================================
--- ARTIST PREVIEW CARD STYLES (PARALLAX) ---
=================================================================
*/
.artist-preview-card {
    display: block;
    position: relative;
    aspect-ratio: 4 / 5; /* A nice portrait aspect ratio */
    border-radius: 1rem;
    overflow: hidden;
    color: white;
    text-decoration: none;
    transform: translateZ(0); /* Promotes to its own layer for smoother animations */
}

.preview-collage {
    position: absolute;
    inset: -10%; /* Make the collage slightly larger than the card to hide edges */
    filter: blur(4px) brightness(0.6);
}

.preview-collage-img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease-out; /* Smooths the parallax effect */
    transform: scale(1.2); /* Start slightly zoomed in */
}
/* Stagger the images */
.img-2 { top: 20%; left: 30%; }
.img-3 { top: -10%; left: -20%; }
.img-4 { top: 40%; left: -10%; }

.preview-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle, transparent 30%, rgba(0,0,0,0.8) 100%);
    z-index: 1;
}

.preview-floating-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    text-align: center;
    padding: 1rem;
    transition: transform 0.3s ease-out;
}
.artist-preview-card:hover .preview-floating-content {
    transform: translateY(-10px);
}

.preview-pfp {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid white;
    box-shadow: 0 5px 20px rgba(0,0,0,0.5);
}

.preview-name {
    font-family: var(--font-secondary);
    font-size: 2rem;
    margin: 1rem 0 0 0;
    text-shadow: 0 2px 5px black;
}

/*
=================================================================
--- INTERACTIVE LIGHTBOX/CAROUSEL STYLES V2.0 ---
=================================================================
*/
.art-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    animation: lightbox-fade-in 0.5s ease;
}
@keyframes lightbox-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lightbox-backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.9);
    cursor: pointer;
    /* FIXED: Ensure backdrop is always at the bottom of the stack */
    z-index: 0;
}

.lightbox-main-content {
    position: relative;
    flex-grow: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    /* FIXED: Ensure main content is above the backdrop */
    z-index: 1;
}
.lightbox-image-container {
    max-width: 100%;
    max-height: 100%;
    display: flex;
}
.lightbox-image-container img {
    max-width: 100%;
    max-height: 80vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 0.5rem;
    user-select: none;
}

.lightbox-close, .lightbox-nav {
    position: absolute;
    background: rgba(0, 0, 0, 0.3);
    color: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    font-size: 2rem;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.2s;
    /* FIXED: Ensure buttons are above the image content */
    z-index: 2;
}
.lightbox-close:hover, .lightbox-nav:hover { background: rgba(0, 0, 0, 0.6); }
.lightbox-close { top: 15px; right: 15px; }
.lightbox-prev { left: 15px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 15px; top: 50%; transform: translateY(-50%); }

/* Details Panel */
.lightbox-details-panel {
    width: 350px;
    flex-shrink: 0;
    background-color: var(--color-surface-solid);
    border-left: 1px solid var(--color-border);
    padding: 2rem;
    overflow-y: auto;
    color: var(--color-text-primary);
    /* FIXED: Ensure details panel is above the backdrop */
    position: relative;
    z-index: 1;
}
.details-content h2 { font-family: var(--font-secondary); margin-top: 0; }
.details-content p { color: var(--color-text-secondary); line-height: 1.6; }
#lightbox-meta p { margin: 0.5rem 0; }
#lightbox-meta strong { color: var(--color-text-primary); }

/* Social Sharing */
.social-share { margin-top: 2rem; }
.social-share a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: #1DA1F2; /* Twitter Blue */
    color: white;
    text-decoration: none;
    border-radius: 2rem;
    font-weight: bold;
}

/* Filmstrip */
.lightbox-filmstrip {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 350px; /* Match width of details panel */
    background: rgba(0,0,0,0.5);
    padding: 0.5rem;
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    /* FIXED: Ensure filmstrip is above the main content */
    z-index: 2;
}
.filmstrip-thumb {
    height: 60px;
    width: auto;
    border-radius: 0.25rem;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.3s, border 0.3s;
    border: 2px solid transparent;
}
.filmstrip-thumb:hover, .filmstrip-thumb.active {
    opacity: 1;
}
.filmstrip-thumb.active {
    border-color: var(--color-accent-glow);
}

/* Responsive adjustments for lightbox */
@media (max-width: 1024px) {
    .art-lightbox {
        flex-direction: column;
    }
    .lightbox-details-panel {
        width: 100%;
        height: 30vh;
        border-left: none;
        border-top: 1px solid var(--color-border);
    }
    .lightbox-filmstrip {
        right: 0;
    }
}

/*
=================================================================
--- NEW ART GALLERY LAYOUT STYLES ---
=================================================================
*/

/* --- Artist Highlight --- */
.artist-highlight-card {
    background: var(--color-surface-solid);
    border-radius: 1rem;
    padding: 2rem;
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-bottom: 4rem;
}
.highlight-pfp {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--color-border);
}
.highlight-label {
    text-transform: uppercase;
    color: var(--color-accent-glow);
    font-weight: bold;
    margin: 0;
}
.highlight-name {
    font-family: var(--font-secondary);
    font-size: 3rem;
    margin: 0.5rem 0 1.5rem 0;
}

/* --- Collection Showcase --- */
.collection-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.collection-grid h3 {
    font-family: var(--font-secondary);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.5rem;
}
.collection-showcase-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.collection-showcase-grid collection-showcase {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: subgrid;
    gap: inherit;
}

/* --- Art Filmstrip --- */
.art-filmstrip-container {
    position: relative;
}
.art-filmstrip-container art-filmstrip {
    display: flex;
    gap: 1rem;
    overflow-x: auto; /* This allows horizontal scrolling */
    padding: 1rem;
    /* FIXED: The rules that were hiding the scrollbar have been removed. */
}

.art-filmstrip-container .filmstrip-item {
    flex: 0 0 250px;
    display: flex;
    flex-direction: column;
}
/* --- Responsive Adjustments --- */
@media (max-width: 768px) {
    .artist-highlight-card {
        flex-direction: column;
        text-align: center;
    }
    .collection-grid {
        grid-template-columns: 1fr;
    }
}

/*
=================================================================
--- ARTIST SPOTLIGHT STYLES ---
=================================================================
*/
.artist-highlight-card {
    background: var(--color-surface-solid);
    border-radius: 1rem;
    padding: 2rem;
    display: flex;
    align-items: center;
    gap: 2rem;
    /* FIXED: Add top margin to separate it from the grid above */
    margin-top: 4rem;
    margin-bottom: 4rem;
}
.highlight-pfp {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--color-border);
}
.highlight-label {
    text-transform: uppercase;
    color: var(--color-accent-glow);
    font-weight: bold;
    margin: 0;
}
.highlight-name {
    font-family: var(--font-secondary);
    font-size: 3rem;
    margin: 0.5rem 0 1.5rem 0;
}

.text-page-main {
    max-width: 90%;
}

/*
=================================================================
--- PUBLIC WIKI STYLES (V2) ---
=================================================================
*/
.wiki-main {
    max-width: 1400px;
}
.wiki-profile-grid {
    display: grid;
    grid-template-columns: 350px 1fr; /* Sidebar and main content */
    gap: 2rem;
}
.wiki-main-image {
    width: 100%;
    border-radius: 1rem;
    margin-bottom: 1.5rem;
}
.vitals-table {
    background: var(--color-surface-solid);
    border-radius: 1rem;
    padding: 1.5rem;
}
.vitals-table h3 {
    font-family: var(--font-secondary);
    margin-top: 0;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.5rem;
}
.vitals-row {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--color-border);
}
.vitals-row:last-child {
    border-bottom: none;
}
.vitals-row strong {
    color: var(--color-text-secondary);
}
.wiki-header {
    text-align: center;
    margin-bottom: 2rem;
}
.wiki-header h1 {
    font-family: var(--font-secondary);
    font-size: 4rem;
    margin: 0;
}
.wiki-header p {
    font-style: italic;
    color: var(--color-text-secondary);
    margin: 0.5rem 0 0 0;
}
.wiki-tabs {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 2rem;
}
.wiki-tab-btn {
    padding: 1rem 1.5rem;
    background: none;
    border: none;
    color: var(--color-text-secondary);
    font-size: 1.1rem;
    font-weight: bold;
    cursor: pointer;
    border-bottom: 3px solid transparent;
}
.wiki-tab-btn.active {
    color: var(--color-text-primary);
    border-bottom-color: var(--color-accent-glow);
}
.wiki-tab-content {
    display: none;
}
.wiki-tab-content.active {
    display: block;
}
.tree-section h3 {
    font-family: var(--font-secondary);
    color: var(--color-accent-glow);
}
.tree-section p {
    line-height: 1.7;
    white-space: pre-wrap;
}
@media (max-width: 768px) {
    .wiki-profile-grid {
        grid-template-columns: 1fr;
    }
}