:root {
  --c-orange: #C65A2E;
  --c-gold: #D9A441;
  --c-espresso: #3A2C25;
  --c-surface: #2A1F1A;
  --c-cream: #F4EDE3;
  --c-olive: #7A7F5A;
  
  --f-head: 'Playfair Display', serif;
  --f-body: 'Montserrat', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: var(--c-espresso); color: var(--c-cream); font-family: var(--f-body); overflow-x: hidden; }

#fixed-backgrounds { position: fixed; top: 0; left: 0; width: 100%; height: 100dvh; z-index: -10; }
.bg-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s ease-in-out; }
.bg-layer.active { opacity: 1; }

.video-bg { width: 100%; height: 100%; object-fit: cover; filter: contrast(100%) brightness(90%) saturate(100%); }
.img-bg { width: 100%; height: 100%; object-fit: cover; background-size: 101%; background-color: transparent; background-position: center 35%; }

.overlay-hero { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.2); z-index: 1; }
.overlay-about { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(58, 44, 37, 1) 0%, rgba(58, 44, 37, 0.75) 50%, rgba(58, 44, 37, 0.95) 100%); }
.overlay-solid { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--c-espresso); }

nav { position: fixed; top: 0; width: 100%; padding: 25px; z-index: 100; text-align: center; background: linear-gradient(rgba(0,0,0,0.6), transparent); }
nav .logo { font-family: var(--f-head); font-size: 1.8rem; letter-spacing: 2px; color: var(--c-cream); }
nav .logo span { color: var(--c-orange); }

.section { min-height: 100dvh; padding: 100px 20px; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; z-index: 1; }
#hero { justify-content: flex-start; padding-top: 15vh; }
.section-inner { width: 100%; max-width: 1000px; display: flex; flex-direction: column; align-items: center; }

/* 2D HALF MOON WRAPPER */
.hero-record-wrapper {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100dvh; /* Expanded to full screen to prevent chopping the drop-shadow */
    overflow: hidden; 
    z-index: 0;
    pointer-events: none; /* Let clicks pass through */
}

/* MASSIVE 2D RECORD CONTAINER */
.record-container.hero-record {
    position: absolute;
    width: min(90vh, 100vw) !important; /* Perfect peak height */
    height: min(90vh, 100vw) !important;
    max-width: none;
    max-height: none;
    left: 50%;
    top: 100%; /* Locks the center EXACTLY to the bottom edge */
    transform: translate(-50%, -50%);
    margin: 0;
    filter: drop-shadow(0 -20px 50px rgba(0,0,0,0.8));
}

/* Base Physical Record (Using Uploaded Image) */
.record { 
    width: 100%; height: 100%; border-radius: 50%; 
    background-image: url('assets/record.png');
    background-size: 118%; /* Zoomed just enough to push the photo padding out */
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    position: relative; overflow: hidden; 
    animation: spin 10s linear infinite; 
}
@keyframes spin { 100% { transform: rotate(360deg); } }

.about-grid { display: grid; grid-template-columns: 1fr; gap: 40px; width: 100%; align-items: center; margin-bottom: 60px; }
@media (min-width: 768px) { .about-grid { grid-template-columns: 1fr 1.2fr; } }
.about-img { width: 100%; aspect-ratio: 1; object-fit: cover; filter: grayscale(10%) contrast(110%); border: 0; box-shadow: -12px 12px 0 var(--c-orange); }
.about-text h2 { font-family: var(--f-head); font-size: 2.8rem; margin-bottom: 50px; color: var(--c-gold); line-height: 1.1; }
.about-text p { font-size: 1.05rem; line-height: 1.8; margin-bottom: 50px; opacity: 0.95; font-weight: 300; }

.section-title { font-family: var(--f-head); font-size: 2.5rem; color: var(--c-gold); margin-bottom: 40px; text-align: center; }
.gigs-container { width: 100%; display: flex; flex-direction: column; gap: 20px; margin-bottom: 60px; }






.mixcloud-wrapper { width: 100%; background: #111; padding: 0; border: 1px solid var(--c-gold); margin-bottom: 50px; }




.btn-primary { background: var(--c-orange); color: var(--c-cream); border: none; padding: 18px 30px; font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; cursor: pointer; border-radius: 40px; transition: background 0.3s, transform 0.2s; margin-top: 10px; }
.btn-primary:hover { background: var(--c-gold); transform: translateY(-3px); }

.gold-sweep { width: 0%; height: 1px; background: var(--c-gold); margin: 60px 0; transition: width 1.5s cubic-bezier(0.22, 1, 0.36, 1); opacity: 0.5; }
.gold-sweep.visible { width: 100%; }
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }



/* RESIDENCY BLOCK */
.residency-block {
    width: 100%;
    text-align: center;
    padding: 20px 0;
}
.residency-title {
    font-family: var(--f-body);
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--c-gold);
    margin-bottom: 8px;
}
.residency-desc {
    font-size: 0.95rem;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.6;
}

/* PLAIN TEXT SHOWS & CONTACT */
.shows-text, .contact-text {
    text-align: center;
}
.shows-text p, .contact-text p {
    font-family: var(--f-body);
    font-size: 1.15rem;
    margin-bottom: 12px;
    line-height: 1.6;
    opacity: 0.9;
    font-weight: 400;
}
.shows-text p strong {
    color: var(--c-gold);
    font-weight: 800;
    font-size: 1.25rem;
    display: inline-block;
    margin-bottom: 5px;
}
.contact-text a {
    color: var(--c-cream);
    text-decoration: none;
    border-bottom: 1px solid rgba(217, 164, 65, 0.5); /* Subtle gold underline */
    padding-bottom: 2px;
    transition: opacity 0.3s, border-color 0.3s;
}
.contact-text a:hover {
    opacity: 0.7;
    border-color: var(--c-orange);
}

/* SPACING OVERRIDES */
#shows {
    min-height: auto; /* Stops the section from forcing a full screen height */
    padding-top: 50px; /* Pulls it up closer to the Listen section */
    padding-bottom: 100px;
}

/* QUOTE BLOCK */
.quote-block {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
    padding: 0 20px;
}
.quote-block p {
    font-family: var(--f-body); /* Standard clean font, not weird */
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1.6;
    color: var(--c-cream);
    opacity: 0.9;
}

/* ELEGANT SECTION DIVIDERS */
.section-divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(217, 164, 65, 0.3), transparent);
}

/* STATIC CURVED RECORD TEXT */
.record-text-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    pointer-events: none; /* Let clicks pass through if needed */
}
.record-text-svg text {
    font-family: var(--f-body);
    font-size: 26px; /* Scales natively with the SVG viewBox */
    font-weight: 600;
    letter-spacing: 12px;
    fill: rgba(244, 237, 227, 1.0); /* Subtle faded cream */
}
