@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Syne:wght@600;700;800&display=swap');
:root{--bg:#090a0d;--card:#14161c;--soft:#1c1f27;--text:#f6f6f7;--muted:#a6a8b0;--accent:#f22c57;--accent2:#7d5cff;--line:#2b2e37;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{height:74px;position:sticky;top:0;z-index:50;background:rgba(9,10,13,.88);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - var(--max))/2));border-bottom:1px solid var(--line)}.brand{font-family:Syne;font-weight:800;font-size:24px}.brand span{color:var(--accent)}nav{display:flex;gap:34px}nav a{font-size:13px;font-weight:800;letter-spacing:.12em}nav a:hover{color:var(--accent)}.menu-toggle{display:none;background:none;color:white;border:0;font-size:25px}.hero{min-height:610px;position:relative;display:grid;place-items:center;background-size:cover;background-position:center}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,7,.92),rgba(5,5,7,.35)),linear-gradient(0deg,var(--bg),transparent 45%)}.hero-content{position:relative;z-index:2;width:min(var(--max),calc(100% - 48px));padding-top:60px}.eyebrow{color:#ffb4c4;font-weight:800;letter-spacing:.18em;font-size:12px}.hero h1,.page-hero h1{font-family:Syne;font-size:clamp(48px,8vw,100px);line-height:.94;margin:18px 0;max-width:900px}.hero p{font-size:20px;color:#d3d3d7;max-width:650px}.actions{display:flex;gap:14px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;background:var(--accent);font-weight:800;border:1px solid var(--accent);cursor:pointer;color:white}.btn.alt{background:transparent;border-color:#fff}.btn.small{padding:9px 15px;font-size:13px}.section{width:min(var(--max),calc(100% - 48px));margin:auto;padding:80px 0}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.section h2{font-family:Syne;font-size:42px;margin:0}.section-head p,.muted{color:var(--muted)}.artist-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}.artist-card{background:var(--card);border-radius:16px;overflow:hidden;border:1px solid var(--line);transition:.25s}.artist-card:hover{transform:translateY(-5px);border-color:#555}.artist-card img{width:100%;aspect-ratio:4/5;object-fit:cover}.artist-card .body{padding:15px}.artist-card h3{margin:0;font-size:17px}.artist-card p{margin:5px 0 0;color:var(--muted);font-size:13px}.banner-grid{display:grid;grid-template-columns:2fr 1fr;gap:22px}.feature-banner{min-height:390px;border-radius:22px;overflow:hidden;background-size:cover;background-position:center;position:relative}.feature-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9),transparent)}.feature-copy{position:absolute;z-index:2;left:30px;bottom:28px}.feature-copy h3{font-family:Syne;font-size:38px;margin:5px 0}.page-hero{width:min(var(--max),calc(100% - 48px));margin:auto;padding:85px 0 45px}.page-hero h1{font-size:64px}.filters{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1fr 1fr auto;gap:12px;background:var(--card);padding:18px;border:1px solid var(--line);border-radius:16px;margin-bottom:30px}.input,.select,textarea{width:100%;background:#0d0f13;border:1px solid var(--line);border-radius:10px;color:white;padding:12px 13px;font:inherit}.music-list{display:grid;gap:13px}.track{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.4fr) 120px;align-items:center;gap:22px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px}.track-info{display:flex;align-items:center;gap:14px}.track-cover{width:62px;height:62px;border-radius:10px;object-fit:cover;background:var(--soft)}.track h3{margin:0}.track p{color:var(--muted);margin:5px 0 0}.track audio{width:100%}.date{color:var(--muted);font-size:13px;text-align:right}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.event-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}.event-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.event-card .body{padding:20px}.pill{display:inline-block;border-radius:999px;background:rgba(242,44,87,.16);color:#ff8da6;padding:6px 10px;font-size:12px;font-weight:800}.profile-hero{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}.profile-hero img{width:100%;max-height:650px;object-fit:cover;border-radius:22px}.profile-hero h1{font-family:Syne;font-size:68px;margin:0 0 12px}.bio{font-size:17px;line-height:1.8;color:#d0d1d6}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}.info-panel{background:linear-gradient(135deg,#151821,#0c0d11);border:1px solid var(--line);border-radius:22px;padding:35px}.site-footer{width:min(var(--max),calc(100% - 48px));margin:50px auto 0;padding:45px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:2fr 1fr 1.4fr 1fr;gap:30px;color:var(--muted)}.site-footer strong{color:white;display:block;margin-bottom:10px}.site-footer a{display:block;margin:8px 0}.admin-shell{width:min(1100px,calc(100% - 36px));margin:45px auto}.admin-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.notice{padding:12px 16px;background:#173623;border:1px solid #2d6f44;border-radius:10px;margin-bottom:16px}.error{background:#431d24;border-color:#903447}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}
@media(max-width:1000px){
    .artist-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:680px){
    .artist-grid{
        grid-template-columns:1fr;
    }

    .artist-image-link img{
        height:auto;
        aspect-ratio:4/5;
    }
}
@media(max-width:680px){.site-header{padding:0 18px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:74px;left:0;right:0;background:#0d0f13;padding:24px;flex-direction:column}.site-header nav.open{display:flex}.hero{min-height:520px}.hero h1{font-size:50px}.event-grid,.gallery{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.track{grid-template-columns:1fr}.date{text-align:left}.section{width:min(100% - 30px, var(--max));padding:55px 0}.section h2{font-size:34px}.page-hero h1,.profile-hero h1{font-size:48px}.site-footer{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
.artist-card {
    overflow: hidden;
}

.artist-card .body {
    display: flex;
    flex-direction: column;
    min-height: 260px;
}

.artist-card h3 {
    margin: 12px 0 6px;
}

.artist-card h3 a {
    color: inherit;
    text-decoration: none;
}

.artist-card h3 a:hover {
    text-decoration: underline;
}

.artist-image-link {
    display: block;
    overflow: hidden;
}

.artist-image-link img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.artist-card:hover .artist-image-link img {
    transform: scale(1.03);
}

.artist-stage-name {
    margin: 0 0 6px;
}

.artist-genre {
    margin: 4px 0;
    font-weight: 700;
}

.artist-city {
    margin: 4px 0 10px;
}

.artist-bio {
    margin: 12px 0 18px;
    line-height: 1.6;
    font-size: 0.95rem;
}

.artist-profile-link {
    display: inline-block;
    margin-top: auto;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
}

/* Artist directory layout fixes */
.section-head p,
.muted {
    color: var(--muted);
}

.artist-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.artist-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.artist-card .body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 260px;
    padding: 20px;
}

.artist-image-link {
    display: block;
    overflow: hidden;
}

.artist-image-link img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.artist-card:hover .artist-image-link img {
    transform: scale(1.03);
}

.artist-stage-name {
    margin: 0 0 6px;
}

.artist-genre {
    margin: 4px 0;
    font-weight: 700;
}

.artist-city {
    margin: 4px 0 10px;
}

.artist-bio {
    margin: 12px 0 18px;
    color: var(--muted);
    font-size: 0.95rem;
    line-height: 1.6;
}

.artist-profile-link {
    display: inline-block;
    margin-top: auto;
    color: var(--text);
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
}

.artist-profile-link:hover {
    color: var(--accent);
}

@media (max-width: 1000px) {
    .artist-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .artist-grid {
        grid-template-columns: 1fr;
    }

    .artist-image-link img {
        height: auto;
        aspect-ratio: 4 / 5;
    }
}
.artist-biography {
    margin-top: 28px;
    padding-top: 26px;
    border-top: 1px solid var(--line);
}

.artist-biography h2 {
    margin: 10px 0 16px;
    font-family: Syne, sans-serif;
    font-size: clamp(26px, 3vw, 38px);
}

.artist-biography .bio {
    max-width: 780px;
    color: #d0d1d6;
    font-size: 17px;
    line-height: 1.85;
}

/* Admin content management */
.admin-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
}

.admin-page-header h1 {
    margin: 8px 0;
    font-family: Syne, sans-serif;
    font-size: 42px;
}

.admin-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-image-preview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 260px));
    gap: 20px;
}

.admin-image-preview strong {
    display: block;
    margin-bottom: 10px;
}

.admin-image-preview img {
    width: 100%;
    max-height: 260px;
    border: 1px solid var(--line);
    border-radius: 14px;
    object-fit: cover;
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
}

.checkbox-label input {
    width: 18px;
    height: 18px;
}

@media (max-width: 680px) {
    .admin-page-header {
        flex-direction: column;
    }

    .admin-image-preview {
        grid-template-columns: 1fr;
    }
}

/* Homepage artist hero slider */
.artist-hero-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #08090c;
}

.artist-hero-track {
    display: flex;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
}

.artist-hero-track::-webkit-scrollbar {
    display: none;
}

.artist-hero-slide {
    position: relative;
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    min-height: clamp(520px, 72vw, 760px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.artist-hero-link {
    position: absolute;
    inset: 0;
    display: block;
    color: var(--text);
}

.artist-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 7s ease;
}

.artist-hero-slide[aria-hidden="false"] .artist-hero-image {
    transform: scale(1.04);
}

.artist-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(5, 6, 9, 0.96) 0%,
            rgba(5, 6, 9, 0.76) 42%,
            rgba(5, 6, 9, 0.25) 72%,
            rgba(5, 6, 9, 0.12) 100%
        ),
        linear-gradient(
            0deg,
            var(--bg) 0%,
            rgba(9, 10, 13, 0.12) 35%,
            transparent 70%
        );
}

.artist-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(var(--max), calc(100% - 48px));
    min-height: clamp(520px, 72vw, 760px);
    margin: auto;
    padding: 80px 70px 80px 0;
    pointer-events: none;
}

.artist-hero-content h1 {
    max-width: 900px;
    margin: 18px 0;
    font-family: Syne, sans-serif;
    font-size: clamp(50px, 8vw, 104px);
    line-height: 0.94;
}

.artist-hero-genre {
    margin: 0 0 7px;
    color: #fff;
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 700;
}

.artist-hero-city {
    margin: 0 0 18px;
    color: #d2d3d8;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.artist-hero-bio {
    max-width: 660px;
    margin: 0;
    color: #d2d3d8;
    font-size: clamp(16px, 1.8vw, 20px);
    line-height: 1.7;
}

.artist-hero-button {
    align-self: flex-start;
    margin-top: 28px;
}

.hero-arrow {
    position: absolute;
    z-index: 5;
    top: 50%;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 50%;
    background: rgba(5, 6, 9, 0.45);
    color: white;
    font-size: 38px;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(12px);
    transform: translateY(-50%);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.hero-arrow:hover {
    border-color: white;
    background: var(--accent);
    transform: translateY(-50%) scale(1.06);
}

.hero-arrow-prev {
    left: 22px;
}

.hero-arrow-next {
    right: 22px;
}

.hero-dots {
    position: absolute;
    z-index: 5;
    right: 50%;
    bottom: 28px;
    display: flex;
    gap: 9px;
    transform: translateX(50%);
}

.hero-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition:
        width 0.25s ease,
        background 0.25s ease;
}

.hero-dot.active {
    width: 34px;
    background: var(--accent);
}

@media (max-width: 800px) {
    .artist-hero-slide,
    .artist-hero-content {
        min-height: 620px;
    }

    .artist-hero-content {
        justify-content: flex-end;
        width: min(100% - 30px, var(--max));
        padding: 90px 48px 85px 0;
    }

    .artist-hero-overlay {
        background:
            linear-gradient(
                0deg,
                rgba(5, 6, 9, 0.98) 0%,
                rgba(5, 6, 9, 0.76) 48%,
                rgba(5, 6, 9, 0.2) 100%
            );
    }

    .artist-hero-content h1 {
        font-size: clamp(45px, 14vw, 72px);
    }

    .artist-hero-bio {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .hero-arrow {
        top: auto;
        bottom: 22px;
        width: 44px;
        height: 44px;
        font-size: 30px;
        transform: none;
    }

    .hero-arrow:hover {
        transform: scale(1.04);
    }

    .hero-arrow-prev {
        left: 15px;
    }

    .hero-arrow-next {
        right: 15px;
    }

    .hero-dots {
        bottom: 38px;
    }
}

/* Stable homepage artist slider */
.home-slider {
    position: relative;
    width: 100%;
    height: clamp(560px, 68vw, 760px);
    overflow: hidden;
    background: var(--bg);
}

.home-slider-track {
    position: relative;
    width: 100%;
    height: 100%;
}

.home-slide {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 0.7s ease,
        visibility 0.7s ease;
}

.home-slide.active {
    z-index: 2;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.home-slide-link {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    color: var(--text);
}

.home-slide-image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
    transform: scale(1);
    transition: transform 7s ease;
}

.home-slide.active .home-slide-image {
    transform: scale(1.035);
}

.home-slide-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(5, 6, 8, 0.95) 0%,
            rgba(5, 6, 8, 0.78) 42%,
            rgba(5, 6, 8, 0.3) 74%,
            rgba(5, 6, 8, 0.15) 100%
        ),
        linear-gradient(
            0deg,
            var(--bg) 0%,
            transparent 42%
        );
}

.home-slide-content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: min(var(--max), calc(100% - 48px));
    height: 100%;
    margin: auto;
    padding: 70px 90px 70px 0;
}

.home-slide-content h1 {
    max-width: 850px;
    margin: 18px 0;
    font-family: Syne, sans-serif;
    font-size: clamp(56px, 8vw, 105px);
    line-height: 0.94;
}

.home-slide-genre {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(18px, 2vw, 23px);
    font-weight: 700;
}

.home-slide-city {
    margin: 0 0 18px;
    color: #d1d2d7;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.home-slide-bio {
    max-width: 650px;
    margin: 0;
    color: #d1d2d7;
    font-size: clamp(16px, 1.8vw, 20px);
    line-height: 1.7;
}

.home-slide-button {
    align-self: flex-start;
    margin-top: 28px;
}

.home-slider-arrow {
    position: absolute;
    z-index: 10;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    background: rgba(5, 6, 8, 0.46);
    color: white;
    font-size: 38px;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transform: translateY(-50%);
}

.home-slider-arrow:hover {
    border-color: var(--accent);
    background: var(--accent);
}

.home-slider-prev {
    left: 22px;
}

.home-slider-next {
    right: 22px;
}

.home-slider-dots {
    position: absolute;
    z-index: 10;
    bottom: 28px;
    left: 50%;
    display: flex;
    gap: 9px;
    transform: translateX(-50%);
}

.home-slider-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.48);
    cursor: pointer;
    transition:
        width 0.25s ease,
        background 0.25s ease;
}

.home-slider-dot.active {
    width: 34px;
    background: var(--accent);
}

@media (max-width: 780px) {
    .home-slider {
        height: 650px;
    }

    .home-slide-image {
        object-position: center top;
    }

    .home-slide-overlay {
        background:
            linear-gradient(
                0deg,
                rgba(5, 6, 8, 0.98) 0%,
                rgba(5, 6, 8, 0.78) 48%,
                rgba(5, 6, 8, 0.18) 100%
            );
    }

    .home-slide-content {
        justify-content: flex-end;
        width: min(100% - 30px, var(--max));
        padding: 90px 0 90px;
    }

    .home-slide-content h1 {
        font-size: clamp(46px, 14vw, 72px);
    }

    .home-slide-bio {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .home-slider-arrow {
        top: auto;
        bottom: 20px;
        width: 44px;
        height: 44px;
        font-size: 30px;
        transform: none;
    }

    .home-slider-prev {
        left: 15px;
    }

    .home-slider-next {
        right: 15px;
    }

    .home-slider-dots {
        bottom: 36px;
    }
}
/* Brand: AUS NIGHTLIFE / ARTISTS */
.brand {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: Syne, sans-serif;
    font-weight: 800;
    font-size: 21px;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.brand-main {
    color: var(--text);
}

.brand-divider {
    color: var(--muted);
    font-weight: 600;
}

.brand-sub {
    color: var(--accent);
}

@media (max-width: 680px) {
    .brand {
        gap: 6px;
        font-size: 16px;
    }
}

/* Dynamic section branding */
.dynamic-brand {
    display: inline-flex;
    align-items: center;
    gap: 0;
    font-family: Syne, sans-serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
    white-space: nowrap;
}

.dynamic-brand .brand-aus {
    color: var(--text);
}

.dynamic-brand .brand-section {
    color: var(--accent);
}

@media (max-width: 680px) {
    .dynamic-brand {
        font-size: 19px;
    }
}

/* Align all artist profile images consistently */
.profile-hero {
    align-items: start;
}

.profile-hero > img,
.profile-hero .profile-image,
.profile-image-wrap {
    align-self: start;
}

.profile-hero > img {
    position: sticky;
    top: 105px;
    width: 100%;
    max-height: 720px;
    object-fit: cover;
    object-position: center top;
}

@media (max-width: 1000px) {
    .profile-hero > img {
        position: static;
        max-height: 650px;
    }
}


/* Artist gallery administration */
.admin-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 24px;
}

.admin-gallery-card {
    padding: 14px;
    overflow: hidden;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
}

.admin-gallery-card > img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin-bottom: 14px;
    border-radius: 12px;
    object-fit: cover;
}

/* Public artist gallery */
.gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.gallery img {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 900px) {
    .admin-gallery-grid,
    .gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .admin-gallery-grid,
    .gallery {
        grid-template-columns: 1fr;
    }
}

/* Artist profile: top-aligned sticky profile image */
.profile-hero {
    align-items: start !important;
    overflow: visible !important;
}

/* Left profile-image column */
.profile-hero > :first-child {
    align-self: start !important;
    position: sticky !important;
    top: 105px;
    height: fit-content;
}

/* Keep the actual profile image at the top */
.profile-hero > :first-child img,
.profile-hero .profile-image {
    display: block;
    width: 100%;
    margin: 0 !important;
    max-height: calc(100vh - 135px);
    object-fit: cover;
    object-position: center top;
}

/* Biography column always begins at the top */
.profile-hero > :last-child {
    align-self: start !important;
}

/* Disable sticky layout on tablets and phones */
@media (max-width: 900px) {
    .profile-hero > :first-child {
        position: static !important;
        top: auto;
    }

    .profile-hero > :first-child img,
    .profile-hero .profile-image {
        max-height: none;
    }
}

/* Admin music management */
.admin-music-search {
    margin-top: 24px;
}

.admin-music-list {
    display: grid;
    gap: 16px;
}

.admin-music-row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--card);
}

.admin-music-cover {
    width: 110px;
    height: 110px;
    border-radius: 12px;
    object-fit: cover;
}

.admin-music-details h3 {
    margin: 0 0 6px;
}

.admin-music-details p {
    margin: 4px 0;
}

.admin-music-details audio {
    width: min(100%, 440px);
    margin-top: 10px;
}

.admin-music-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-music-actions form {
    margin: 0;
}

.delete-button {
    border-color: #a3384f;
    color: #ff9caf;
}

.song-form-cover {
    display: block;
    width: 140px;
    height: 140px;
    margin: 10px 0;
    border-radius: 12px;
    object-fit: cover;
}

@media (max-width: 760px) {
    .admin-music-row {
        grid-template-columns: 80px minmax(0, 1fr);
    }

    .admin-music-cover {
        width: 80px;
        height: 80px;
    }

    .admin-music-actions {
        grid-column: 1 / -1;
    }
}

/* Artist media manager */
.media-admin-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 24px;
}

.media-edit-form {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.media-delete {
    width: 100%;
    margin-top: 10px;
    border-color: #96384c;
    color: #ff9fb1;
}

.admin-video-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin-top: 22px;
}

.admin-video-card {
    padding: 14px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--card);
}

.admin-video-card iframe,
.admin-video-card video {
    display: block;
    width: 100%;
    aspect-ratio: 5 / 4;
    border: 0;
    border-radius: 12px;
    background: #000;
    object-fit: cover;
}

/* Public artist videos */
.artist-video-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}

.artist-video-item.story {
    max-width: 480px;
}

.artist-video-frame {
    overflow: hidden;
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #000;
}

.artist-video-frame.card {
    aspect-ratio: 5 / 4;
}

.artist-video-frame.story {
    aspect-ratio: 9 / 16;
    max-width: 480px;
}

.artist-video-frame iframe,
.artist-video-frame video {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
    object-fit: cover;
}

.artist-video-caption {
    margin: 10px 4px 0;
    color: var(--muted);
}

/* Public artist photo gallery */
.gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.gallery img {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 900px) {
    .media-admin-columns,
    .admin-video-grid,
    .artist-video-grid {
        grid-template-columns: 1fr;
    }

    .gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .gallery {
        grid-template-columns: 1fr;
    }

    .artist-video-item.story,
    .artist-video-frame.story {
        max-width: 100%;
    }
}


/* Artist profile reels only — does not affect homepage DJ cards */
.artist-video-section .artist-video-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 18px !important;
}

.artist-video-section .artist-video-item {
    width: 100% !important;
    max-width: none !important;
}

.artist-video-section .artist-video-item.story {
    justify-self: center !important;
}

.artist-video-section .artist-video-frame.story {
    width: 100% !important;
    max-width: 270px !important;
    aspect-ratio: 9 / 16 !important;
    margin: 0 auto !important;
}

.artist-video-section .artist-video-frame.card {
    width: 100% !important;
    max-width: 380px !important;
    aspect-ratio: 5 / 4 !important;
    margin: 0 auto !important;
}

.artist-video-section .artist-video-frame iframe,
.artist-video-section .artist-video-frame video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    object-fit: cover !important;
}

.artist-video-section .artist-video-caption {
    max-width: 270px !important;
    margin: 9px auto 0 !important;
    text-align: center !important;
}

@media (max-width: 950px) {
    .artist-video-section .artist-video-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    .artist-video-section .artist-video-grid {
        grid-template-columns: 1fr !important;
    }

    .artist-video-section .artist-video-frame.story {
        max-width: 260px !important;
    }

    .artist-video-section .artist-video-frame.card {
        max-width: 100% !important;
    }
}

/* Artist profile videos: equal reel sizing for uploads, YouTube and Instagram */
.artist-video-section .artist-video-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 22px !important;
}

.artist-video-section .artist-video-item.story {
    width: 100% !important;
    max-width: 300px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    justify-self: center !important;
}

.artist-video-section .artist-video-frame.story {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 300px !important;
    height: auto !important;
    aspect-ratio: 9 / 16 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    border-radius: 18px !important;
    background: #000 !important;
}

/* Lock all story media to the exact same frame */
.artist-video-section .artist-video-frame.story > video,
.artist-video-section .artist-video-frame.story > iframe {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}

/* Instagram-specific protection against its default wide embed sizing */
.artist-video-section
.artist-video-frame.story
iframe[src*="instagram.com"] {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    transform: none !important;
}

/* Keep captions aligned with the reel */
.artist-video-section .artist-video-item.story
.artist-video-caption {
    width: 100% !important;
    max-width: 300px !important;
    margin: 10px auto 0 !important;
    text-align: center !important;
}

@media (max-width: 980px) {
    .artist-video-section .artist-video-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .artist-video-section .artist-video-grid {
        grid-template-columns: 1fr !important;
    }

    .artist-video-section .artist-video-item.story,
    .artist-video-section .artist-video-frame.story {
        max-width: 280px !important;
    }
}

/* Instagram Reels: match uploaded 9:16 story videos exactly */
.artist-video-section
.artist-video-item.story
.artist-video-frame.story {
    width: 100% !important;
    max-width: 300px !important;
    aspect-ratio: 9 / 16 !important;
    height: auto !important;
    overflow: hidden !important;
    margin: 0 auto !important;
    background: #000 !important;
}

.artist-video-section
.artist-video-frame.story
iframe[src*="instagram.com"] {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}
