/* Cleaned base theme and resets */
:root {
  --gjs-t-color-primary: #6366F1;
  --gjs-t-color-secondary: #1d2940;
  --gjs-t-color-accent: #22D3EE;
  --gjs-t-color-success: #10B981;
  --gjs-t-color-warning: #F59E0B;
  --gjs-t-color-error: #EF4444;
}

/* (Removed global css scroll-behavior smoothing to revert to native default) */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

/* Typography tokens */
.gjs-t-body {
  background-color: #1d2940;
  color: #E5E7EB;
  font-size: 16px;
  line-height: 1.7;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
}
.gjs-t-h1 {
  color: #F9FAFB;
  font-size: 56px;
  line-height: 1.1;
  font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
}
.gjs-t-h2 {
  color: #F9FAFB;
  font-size: 32px;
  line-height: 1.2;
  font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
}
.gjs-t-button { background-color: var(--gjs-t-color-primary); color: #fff; border-radius: 9999px; }
.gjs-t-link { color: var(--gjs-t-color-accent); text-decoration: none; }
.gjs-t-border { border-radius: 16px; border: 1px solid rgba(255,255,255,0.08); border-color: #e0e0e0; }
/* Aspect ratio utility for video embeds */
.video-embed-16x9{position:relative;width:100%;aspect-ratio:16/9;background:#000;overflow:hidden;border-radius:12px;}
.video-embed-16x9 iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
/* Brighter Days single-embed variant */
.single-embed .track-content{display:block !important;}
.single-embed .player-col{display:block !important;}
.single-embed .video-embed-16x9{margin:0 auto;max-width:900px;}
/* Center title & widen video for single embed */
/* Single embed sizing history: 1200 -> 960 (-20%) -> 816 (-15%) -> 734 (-10%) -> 587 (-20% current) */
.single-embed .song-title{text-align:center !important; font-size:1.1rem !important; line-height:1.2 !important; margin-bottom:0.6rem;}
/* Base max-width now 587px */
.single-embed .video-embed-16x9{max-width:587px;}
/* 1400 breakpoint chain: 1000 -> 800 -> 680 -> 612 -> 490 */
@media (max-width: 1400px){ .single-embed .video-embed-16x9{max-width:490px;} }
/* 1100 breakpoint chain: 90% -> 72% -> 61% -> 55% -> 44% */
@media (max-width: 1100px){ .single-embed .video-embed-16x9{max-width:44%;} }
/* Two-up layout for live looping videos on wide screens */
@media (min-width: 1100px){
  #live-looping-list{grid-template-columns:repeat(12,minmax(0,1fr));}
  #live-looping-list > .track-card.single-embed{grid-column:span 6 / span 6;}
  #live-looping-list > .track-card.single-embed .video-embed-16x9{margin-left:0;margin-right:0;}
}
/* Medium screens: stack but keep reduced width centered */
@media (min-width: 600px) and (max-width: 1099px){
  /* For stacked layout consistency, keep each card full width */
  #live-looping-list{grid-template-columns:repeat(12,minmax(0,1fr));}
  #live-looping-list > .track-card.single-embed{grid-column:span 12 / span 12;}
  #live-looping-list > .track-card.single-embed .video-embed-16x9{margin:0 auto;max-width:640px;}
}
/* Tighten padding for compact two-column cards */
.track-card.single-embed{padding:0.85rem;}
/* Slightly reduce padding for the single-embed card */
.track-card.single-embed{padding:1rem;}
@media (max-width: 640px){ .single-embed .song-title{font-size:1.5rem !important;} }
/* Live Looping mobile refinements (revised for vertical stack) */
@media (max-width: 1099px){
  #live-looping-list > .track-card.single-embed{grid-column:span 12 / span 12;}
}
@media (max-width: 600px){
  #live-looping-list{grid-template-columns:1fr !important;}
  #live-looping-list > .track-card.single-embed{padding:0.85rem 0.9rem 1rem;}
  #live-looping-list > .track-card.single-embed .video-embed-16x9{max-width:100% !important;width:100%;margin:0 auto;}
  #live-looping-list > .track-card.single-embed .song-title{font-size:1.3rem !important; margin-bottom:0.55rem !important;}
  /* Increased mobile spacing for platform icons (user request: "More spaced out") */
  #live-looping-list > .track-card.single-embed .track-platforms{flex-wrap:wrap;gap:1.75rem;margin-top:0.65rem;margin-bottom:0.45rem;}
  #live-looping-list > .track-card.single-embed .track-platforms .platform-icon img{width:30px;height:30px;}
  #live-looping-list > .track-card.single-embed .purchase-button{padding:0.48rem 0.9rem;font-size:0.72rem;letter-spacing:0.35px;}
}
@media (max-width: 400px){
  #live-looping-list > .track-card.single-embed .song-title{font-size:1.2rem !important;}
  #live-looping-list > .track-card.single-embed .track-platforms{gap:0.7rem;}
  #live-looping-list > .track-card.single-embed .track-platforms .platform-icon img{width:26px;height:26px;}
  #live-looping-list > .track-card.single-embed .purchase-button{font-size:0.65rem;padding:0.4rem 0.7rem;}
}

/* Latest section parity: tighten mobile spacing similar to home */
@media (max-width: 600px){
  #music-page #latest .track-card{padding:1rem;}
  #music-page #latest .track-content{gap:0.9rem !important;}
  #music-page #latest .song-title{font-size:1.3rem !important;margin-bottom:0.55rem !important;}
  #music-page #latest .track-platforms{margin-top:0.9rem;}
}
/* Additional mobile parity: match home stacking exactly */
@media (max-width: 992px){
  #music-page #latest .track-content{flex-direction:column !important;align-items:stretch !important;}
  #music-page #latest .artwork-col{justify-content:center !important;}
  #music-page #latest .player-col{justify-content:center !important;}
  #music-page #latest .spotify-slot{max-width:100%;height:auto !important;min-height:352px;}
}
@media (max-width: 480px){
  #music-page #latest .track-card{padding:1rem;}
  #music-page #latest .song-title{font-size:1.375rem !important;}
  #music-page #latest .track-content{gap:0.875rem !important;}
}

/* Dark page variant used on About */
.cls-nfwfr0 { background-color: var(--gjs-t-color-secondary); color: rgb(229 231 235 / 1); }

/* FINAL MOBILE SPACING OVERRIDES (Live Looping icons) */
@media (max-width: 600px){
  #live-looping-list > .track-card.single-embed .track-platforms{gap:2.85rem !important;margin-top:0.82rem !important;margin-bottom:0.65rem !important;}
}
@media (max-width: 400px){
  #live-looping-list > .track-card.single-embed .track-platforms{gap:2.65rem !important;}
}

/* Hero overlay nav (header removed) */
.hero-nav-overlay{position:absolute;top:0;left:0;right:0;z-index:40;padding:1.1rem 1.25rem;}
.hero-nav-inner{max-width:80rem;margin:0 auto;display:flex;align-items:center;gap:1.25rem;}
.site-logo{display:inline-flex;align-items:center;justify-content:center;margin-right:0.75rem;text-decoration:none;line-height:1;}
.hero-nav-overlay .primary-navigation{margin-left:auto;display:flex;align-items:center;gap:1.75rem;padding:0;background:transparent;position:static;z-index:80;}
@media (max-width:768px){
  .hero-nav-overlay .primary-navigation{position:absolute;top:100%;right:1rem;left:auto;flex-direction:column;align-items:stretch;gap:0.45rem;background:rgba(15,23,42,0.95);backdrop-filter:blur(14px);padding:0.9rem 1rem 1.05rem;border:1px solid rgba(255,255,255,0.12);border-radius:16px;min-width:230px;width:clamp(230px,86vw,430px);box-shadow:0 16px 42px -8px rgba(0,0,0,0.6);opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .26s ease, transform .34s cubic-bezier(.32,.72,.28,1);visibility:hidden;z-index:140;}
  .hero-nav-overlay .primary-navigation.open{opacity:1;transform:translateY(0);pointer-events:auto;visibility:visible;}
  .hero-nav-overlay .primary-navigation .nav-link{padding:0.6rem 0.45rem;font-size:0.97rem;}
}
.hero-nav-overlay .hamburger-button{margin-left:auto;}
.site-logo img { display:block; width:44px; height:44px; border-radius:8px; }
@media (min-width: 993px){
  .site-logo img { width:56px; height:56px; }
}
/* Desktop: vertically center nav links to match enlarged logo height */
@media (min-width: 993px){
  .hero-nav-overlay .primary-navigation .nav-link{
    display:inline-flex;
    align-items:center;
    height:56px; /* match logo */
    line-height:1; /* avoid extra baseline offset */
  }
  /* Adjust active underline position inside new taller hit area */
  .primary-navigation .nav-link[aria-current="page"]::after{bottom:6px;}
}
@media (max-width: 480px){ .site-logo img{ width:38px; height:38px; } }
.primary-navigation { display: flex; align-items: center; gap: 1.75rem; margin: 0; padding: 0; }
.site-header .primary-navigation .nav-link { padding:0.25rem 0; }
.nav-link:hover { opacity: 0.8; }
.primary-navigation .nav-link[aria-current="page"]{
  position:relative;
  color:#ffffff; /* brighter text */
  font-weight:600;
  text-shadow:0 0 6px rgba(255,255,255,0.35);
}
/* Subtle pill highlight on current page (desktop) */
@media (min-width: 769px){
  .primary-navigation .nav-link[aria-current="page"]::after{
    content:"";
    position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);
    width:32px;height:3px;border-radius:2px;
    background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.65) 50%, rgba(255,255,255,0) 100%);
    opacity:0.9;
  }
}
/* Mobile: use soft background pill instead of underline */
@media (max-width:768px){
  .primary-navigation .nav-link[aria-current="page"]{
    background:rgba(255,255,255,0.14);
    border-radius:8px;
    text-shadow:none;
  }
}
.header-actions { display: none; align-items: center; gap: 0.75rem; }
.cta-listen-button { padding: 0.625rem 1.25rem; font-weight: 500; transition: opacity .15s cubic-bezier(0.4,0,0.2,1); }
.cta-listen-button:hover { opacity: 0.9; }

/* Sections used across pages */
.music-section,.events-section { margin-left:auto; margin-right:auto; max-width:80rem; padding:3rem 2rem; }
/* Offset content on pages without hero banner so header doesn't overlap (music, about, contact) */
/* Removed header offset now that nav is inside banner */
body:not(#home) .page-hero, body:not(#home) main, body:not(#home) .music-section:first-of-type { padding-top:0; }
/* Ensure top banner touches viewport top */
.top-image-banner { margin-top:0 !important; }
html, body, main, article { margin-top:0 !important; }
.section-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.section-title { font-weight:600; }

/* Align Music Videos section heading vertically with home page 'My Latest Music' start */
/* Unified first section (below hero) top offset across pages */
/* Unified first section top padding across pages */
#music.music-section, /* Home: My Latest Music */
#live-looping.music-section, /* Music page: Music Videos */
#free-tutorials.music-section /* Tutorials page: Free MK2 Tutorials */ { padding-top:1rem; }
@media (max-width: 992px){
  #music.music-section,
  #live-looping.music-section,
  #free-tutorials.music-section { padding-top:0.75rem; }
}
/* Desktop micro-adjust: home heading slightly higher for precise visual alignment */
/* Removed home-specific micro-adjust; all first sections now use unified padding set earlier (1rem desktop / .75rem tablet) */

/* Cards/grids */
.track-list,.event-list { display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); gap:1.5rem; }
.event-list { justify-items: center; }
.track-card,.event-card { grid-column:span 12 / span 12; padding:1.25rem; background-color:rgb(255 255 255 / 0.05); backdrop-filter:blur(8px); }

/* Contact page shared layout */
.main-content { max-width:72rem; margin-left:auto; margin-right:auto; padding:3rem 1.5rem; }
.page-hero { margin-bottom:2.5rem; text-align:center; }

/* Footer bits (some pages removed footer, but classes may exist) */
.footer-container { margin-left:auto; margin-right:auto; max-width:72rem; padding:2.5rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.footer-navigation { display:flex; align-items:center; gap:1.5rem; }
.footer-link:hover { opacity:.8; }

/* ===================== Home: Top banner ===================== */
#home .top-image-banner{position:relative;width:100%;overflow:hidden;}
#home .top-image-banner img.top-banner-image{width:100%;height:26rem;display:block;object-fit:cover;}
/* Unified overlay gradient (transparent -> subtle fade -> darker base) */
#home .top-image-banner .top-banner-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 14%, rgba(255,255,255,0.05) 30%, rgba(255,255,255,0.02) 46%, rgba(255,255,255,0) 58%, rgba(0,0,0,0.08) 83%, rgba(0,0,0,0.12) 100%);pointer-events:none;mix-blend-mode:normal;}
#home .top-image-banner .top-banner-cta{position:absolute;left:50%;transform:translateX(-50%);bottom:2rem;display:flex;align-items:center;gap:0.5rem;pointer-events:auto;}
#home .top-image-banner .top-banner-cta{justify-content:center;width:fit-content;max-width:90%;}
#home .top-image-banner .cta-button{padding-left:1.5rem;padding-right:1.5rem;padding-top:0.75rem;padding-bottom:0.75rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);text-decoration:none;}
#home .top-image-banner .cta-button:hover{opacity:0.9;}
#home .spotify-embed iframe{width:100%;height:152px;border:0;border-radius:12px;}
#home .track-list{display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5rem;}
#home .track-card{grid-column:span 12 / span 12;padding:1.25rem;background-color:rgb(255 255 255 / 0.05);backdrop-filter:blur(8px);}
#home .track-content{display:flex;align-items:center;gap:1rem;}
#home .artwork-col{display:flex;align-items:center;justify-content:flex-start;flex:0 0 auto;}
#home .track-cover-figure{position:relative;width:80px;height:80px;border-radius:0.5rem;overflow:hidden;margin:0;}
#home .track-cover-image{width:100%;height:100%;display:block;object-fit:cover;}
#home .player-col{flex:1 1 auto;display:flex;align-items:center;justify-content:flex-end;min-width:0;}
#home .spotify-slot{width:100%;max-width:520px;min-height:80px;display:flex;align-items:center;justify-content:center;padding:0.75rem;border:1px dashed rgba(255, 255, 255, 0.2);border-radius:0.5rem;color:rgb(255 255 255 / 0.8);text-align:center;}
#home .spotify-slot .slot-text{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.9375rem;line-height:1.4;}
#home .spotify-slot .slot-text img{flex-shrink:0;}
article#home .track-card{padding:1.25rem;background-color:rgba(255, 255, 255, 0.05);}
article#home .track-content{display:flex;align-items:center;justify-content:center;gap:1rem;flex-direction:row !important;}
article#home .artwork-col, article#home .player-col{display:flex;align-items:center;justify-content:center;}
article#home .player-col{flex:1 1 auto !important;min-width:0;display:flex;align-items:center;justify-content:flex-start;}
article#home .spotify-slot{width:100% !important;max-width:100%;min-height:80px;}
article#home .track-cover-figure{width:88px;height:88px;border-radius:0.5rem;overflow:hidden;margin:0;}
article#home .track-cover-image{width:100%;height:100%;display:block;object-fit:cover;}
article#home .artwork-col{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start;}
#i93upj{width:100%;max-width:100%;padding:0;border:0;background:transparent;border-radius:12px;display:block;}
#i93upj iframe{width:100%;height:152px;border:0;border-radius:12px;display:block;}
#ikov7n{width:100%;max-width:100%;padding:0;border:0;background:transparent;border-radius:12px;display:block;}
#ikov7n iframe{width:100%;height:152px;border:0;border-radius:12px;display:block;}
#idbpyh{width:260px !important;height:260px !important;}
#i01ifs{width:260px !important;height:260px !important;}
#i9dmzj{width:100% !important;height:100% !important;object-fit:cover;display:block;}
#i8nvyh{width:100% !important;height:100% !important;object-fit:cover;display:block;}
#i6pxg3 #i8nvyh{height:152px;width:auto;max-width:100%;display:block;object-fit:cover;}
#i6pxg3 #i01ifs{height:auto;width:auto;}
#i6pxg3 #i9dmzj{height:260px;width:100%;display:block;object-fit:cover;}

@media (max-width: 992px){
  .track-card{grid-column:span 4 / span 4;}
  .event-card{grid-column:span 4 / span 4;}
  .hero-container{flex-direction:column;align-items:flex-start;}
  .biography-layout{grid-template-columns:repeat(1, minmax(0, 1fr));}
  .highlights-row{flex-direction:column;}
  .gallery-header{flex-direction:column;align-items:flex-start;gap:1rem;}
  .gallery-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .cta-container{flex-direction:column;align-items:flex-start;}
  .footer-container{flex-direction:column;align-items:flex-start;gap:1.5rem;}
  .primary-navigation{padding-left:1rem;padding-right:1rem;}
  .main-content{padding-left:1rem;padding-right:1rem;padding-top:2.5rem;padding-bottom:2.5rem;}
  .page-hero{margin-bottom:2rem;}
  .primary-contact-method{margin-bottom:2.5rem;}
  .email-card{padding:1.25rem;}
  .form-container{padding:1.5rem;}
  .quick-navigation-section{margin-top:2.5rem;}
  .footer-inner{padding-left:1rem;padding-right:1rem;flex-direction:column;gap:1rem;}
  #home .top-image-banner img.top-banner-image{height:20rem;}
  #home .spotify-slot{max-width:480px;}
  article#home .track-content{justify-content:center;flex-direction:row !important;align-items:center;}
  #i93upj{width:100%;}
  #ikov7n{width:100%;}
  #idbpyh{width:240px !important;height:240px !important;}
  #i01ifs{width:240px !important;height:240px !important;}
  #i6pxg3 #i8nvyh{height:240px;}
  #i6pxg3 #i9dmzj{height:240px;}
}

/* Ensure slideshow arrows remain visible on mobile/tablet */
.slide-arrow { display: flex; }

/* Tablet layout (481–992px): keep Upcoming Events horizontal and centered */
@media (max-width: 992px) and (min-width: 481px) {
  .events-section .event-card { grid-column: span 12 / span 12; width: 100%; max-width: 44rem; margin-left: auto; margin-right: auto; }
  .events-section .event-content { flex-direction: row; align-items: center; justify-content: center; gap: 0.75rem; flex-wrap: nowrap; }
  .events-section .event-details { text-align: center; align-items: center; }
  .events-section .event-meta { justify-content: center; }
}

@media (max-width: 480px){
  .gallery-grid{grid-template-columns:repeat(1, minmax(0, 1fr));}
  .primary-navigation{padding-left:0.75rem;padding-right:0.75rem;}
  .main-content{padding-left:0.75rem;padding-right:0.75rem;padding-top:2rem;padding-bottom:2rem;}
  .page-hero{margin-bottom:1.5rem;}
  .primary-contact-method{margin-bottom:2rem;}
  .email-card{padding:1rem;}
  .email-actions{flex-direction:column;align-items:stretch;}
  .form-container{padding:1rem;}
  .form-actions-row{flex-direction:column;align-items:stretch;}
  .quick-navigation-section{margin-top:2rem;}
  .footer-inner{padding-left:0.75rem;padding-right:0.75rem;}
  #home .top-image-banner img.top-banner-image{height:16rem;}
  #home .top-image-banner .top-banner-cta{bottom:1.25rem;}
  #home .track-content{flex-direction:column;align-items:stretch;gap:0.875rem;}
  #home .artwork-col{justify-content:center;}
  article#home .artwork-col{justify-content:center !important;}
  #home .player-col{justify-content:center;}
  #home .spotify-slot{max-width:100%; height:auto !important; min-height:352px;}
  /* Stack tracks on phones to avoid cutoff */
  article#home .track-content{flex-direction:column !important;justify-content:center;align-items:stretch;}
  #i93upj{width:100%;}
  #ikov7n{width:100%;}
  #idbpyh{width:220px !important;height:220px !important;}
  #i01ifs{width:220px !important;height:220px !important;}
  #i6pxg3 #i8nvyh{height:220px;}
  #i6pxg3 #i9dmzj{height:220px;}
}

/* ===== Spotify iframe sizing overrides ===== */
#home .track-content { align-items: stretch !important; }
#home .artwork-col, #home .player-col { display: flex !important; align-items: stretch !important; }
#home .track-cover-figure { width: 88px; height: 88px; }
#home .spotify-slot { display: flex !important; align-items: stretch !important; justify-content: center; height: 100%; padding: 0.5rem; }
#home .spotify-slot iframe { width: 100% !important; height: 100% !important; border: 0; border-radius: 12px; display: block; align-self: stretch !important; }
#ivqht1, #i7xkpu { height: auto !important; max-height: none !important; box-sizing: border-box !important; }
#ikov7n { height: auto !important; min-height: 0 !important; box-sizing: border-box !important; }
@media (max-width: 992px) { #home .track-cover-figure { width: 80px; height: 80px; } }
@media (max-width: 480px) { #home .track-cover-figure { width: 72px; height: 72px; } }

/* Center players vertically and size by breakpoints */
article#home .track-content { display:flex; align-items:center !important; }
article#home .artwork-col { display:flex; align-items:center !important; }
article#home .player-col { display:flex; align-items:center !important; }
#home .spotify-slot { display:flex !important; align-items:center !important; justify-content:center !important; }
#home .spotify-slot iframe { margin:0 auto !important; vertical-align:middle !important; }
#home .spotify-slot { padding: 0.75rem !important; }
#home .spotify-slot iframe { width: 100% !important; border: 0; border-radius: 12px; display: block; }
/* Force player column to center the embed across breakpoints */
article#home .player-col { justify-content: center !important; }
/* Let JS and container control heights; keep mobile layout stacked */
@media (max-width: 480px) { #home .track-content { flex-direction:column; align-items:stretch; } #home .player-col { justify-content:center; } #home .spotify-slot iframe { height:352px !important; } }
/* Let Amalgamate embed stretch to artwork height */
article#home #track-amalgamate .spotify-slot iframe{height:100% !important;min-height:152px;}
#home .player-col, #home .artwork-col { align-items: center; }

/* Spotify card (optional alternative UI) */
.spotify-card{display:block;position:relative;width:100%;max-width:480px;margin:0 auto;border-radius:12px;overflow:hidden;text-decoration:none;background:#111;}
.spotify-card-art{width:100%;height:auto;display:block;object-fit:cover;}
.spotify-card-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(0,0,0,0.0) 40%, rgba(0,0,0,0.45) 100%);opacity:1;}
.spotify-play{font-size:2rem;color:#fff;opacity:0.95;}
@media (max-width: 992px){ .spotify-card{max-width:420px} }
@media (max-width: 480px){ .spotify-card{max-width:360px} }

/* Larger track titles */
/* Music page latest section parity with home page */
#music-page #latest .track-content{display:flex;align-items:center;justify-content:center;gap:1rem;}
#music-page #latest .artwork-col,#music-page #latest .player-col{display:flex;align-items:center;justify-content:center;}
#music-page #latest .player-col{flex:1 1 auto !important;min-width:0;justify-content:flex-start;}
#music-page #latest .spotify-slot{width:100% !important;max-width:100%;min-height:80px;display:flex;align-items:center;justify-content:center;padding:0.75rem;border:1px dashed rgba(255,255,255,0.2);border-radius:0.5rem;}
#music-page #latest .spotify-slot iframe{display:block !important;opacity:1 !important;visibility:visible !important;width:100% !important;height:100% !important;min-height:152px;}
@media (max-width: 992px){ #music-page #latest .spotify-slot iframe{height:352px !important;} }
@media (max-width: 480px){ #music-page #latest .spotify-slot iframe{height:352px !important;} }
#music-page #latest .song-title{display:block;text-align:center;font-weight:600;font-size:1.375rem;line-height:1.6;margin-bottom:0.75rem;color:#F9FAFB;}
@media (max-width: 992px){
  #music-page #latest .track-content{flex-direction:column !important; align-items:stretch !important; gap:1.125rem !important;}
  #music-page #latest .player-col{justify-content:center !important;}
  #music-page #latest .spotify-slot{height:auto !important; padding:0 !important; max-width:620px; margin:0 auto;}
  #music-page #latest .spotify-slot iframe{height:352px !important;}
  #music-page #latest .song-title { font-size: 1.375rem !important; }
}
@media (max-width: 480px){
  #music-page #latest .track-content{flex-direction:column;align-items:stretch;gap:0.875rem;}
  #music-page #latest .artwork-col{justify-content:center;}
  #music-page #latest .player-col{justify-content:center;}
  #music-page #latest .spotify-slot{max-width:100%; height:auto !important; min-height:352px;}
  #music-page #latest .song-title { font-size: 1.375rem !important; }
}
/* Music page latest: match home artwork/embed scaling sizes */
@media (min-width: 993px){
  /* Desktop: arrange artwork and player side by side */
  #music-page #latest .track-content{flex-direction:row;}
  #music-page #latest .track-cover-figure{width:352px;height:352px;}
  #music-page #latest .track-cover-image{width:100%;height:100%;object-fit:cover;display:block;}
  #music-page #latest .spotify-slot{padding:0 !important;border:0 !important;display:flex !important;align-items:center !important;justify-content:center !important;height:352px !important;}
  #music-page #latest .spotify-slot iframe{height:100% !important;width:100% !important;display:block !important;}
  #music-page #latest .player-col{align-items:center !important;justify-content:center !important;}
  /* (Removed obsolete #music-page #latest .song-title override) */
}
/* Music latest unified artwork sizes (mirror home: 80px tablet, 72px phone; no forced image heights) */
#music-page #latest .track-cover-figure{position:relative;overflow:hidden;border-radius:0.5rem;margin:0 auto;}
#music-page #latest .track-cover-image{display:block;width:100%;height:100%;object-fit:cover;}
/* Music latest artwork sizing tiers (match home large aesthetic) */
@media (min-width: 993px){
  #music-page #latest .track-cover-figure{width:352px;height:352px;}
}
@media (min-width: 600px) and (max-width: 992px){
  #music-page #latest .track-cover-figure{width:240px;height:240px;}
}
@media (max-width: 599px) and (min-width: 481px){
  #music-page #latest .track-cover-figure{width:240px;height:240px;}
}
@media (max-width: 480px){
  #music-page #latest .track-cover-figure{width:220px;height:220px;}
}
@media (min-width: 993px){ /* desktop large size already handled above elsewhere (352px) */ }
/* FINAL SAFETY OVERRIDE: ensure column stack on tablets/phones regardless of earlier rules */
@media (max-width: 992px){
  #music-page #latest .track-content{flex-direction:column !important;align-items:stretch !important;}
  #music-page #latest .artwork-col,#music-page #latest .player-col{width:100% !important;max-width:100% !important;}
  #music-page #latest .spotify-slot{width:100% !important;max-width:100% !important;margin:0 auto;}
}
/* Music latest: phone layout (≤480px) – stack & center (artwork size set above) */
@media (max-width: 480px){
  #music-page #latest .track-content{flex-direction:column !important;align-items:stretch !important;gap:0.875rem !important;}
  #music-page #latest .artwork-col{justify-content:center !important;}
  #music-page #latest .player-col{justify-content:center !important;}
  #music-page #latest .spotify-slot{max-width:100%;height:auto !important;min-height:352px;}
  /* Match home mobile title scale */
  #music-page #latest .song-title{font-size:1.375rem !important;line-height:1.6 !important;margin-bottom:0.75rem !important;}
}
/* Force music page latest tracks to occupy full width on sub-desktop just like home page stacked version */
@media (max-width: 992px){
  #music-page #latest .track-card{grid-column:span 12 / span 12 !important;}
}
/* Additional hard fallback: switch list to block on very small phones to neutralize grid issues */
@media (max-width: 480px){
  /* Let grid behavior remain so gap matches home */
  #music-page #latest .track-list{display:grid !important;}
  #music-page #latest .track-card{width:100%;}
}
/* Ensure music latest uses same grid gap as home across breakpoints */
#music-page #latest .track-list{gap:1.5rem !important;}
/* FINAL PARITY OVERRIDES: make music page latest section identical to home latest */
#music-page #latest.music-section { padding:3rem 2rem; }
#music-page #latest .track-card{padding:1.25rem !important;background-color:rgba(255,255,255,0.05) !important;backdrop-filter:blur(8px) !important;}
#music-page #latest .track-content{gap:1rem !important;flex-direction:row !important;}
#music-page #latest .artwork-col{flex:0 0 auto;justify-content:flex-start !important;}
#music-page #latest .player-col{flex:1 1 auto !important;justify-content:flex-start !important;}
#music-page #latest .spotify-slot{width:100% !important;max-width:100% !important;min-height:80px !important;padding:0.75rem !important;border:1px dashed rgba(255,255,255,0.2) !important;border-radius:0.5rem !important;}
#music-page #latest .track-content{gap:1rem !important;flex-direction:row !important;}
/* Removed outdated small title sizes; use unified enlarged system */
/* (Removed music-page explicit artwork sizing tiers; now using same ID-based rules as home for perfect parity) */
/* Announcement title responsive scaling */
@media (max-width: 992px){
  .announcement-title{font-size:1.05rem !important;line-height:1.4 !important;}
}
@media (max-width: 560px){
  .announcement-title{font-size:1rem !important;line-height:1.35 !important;}
}
@media (max-width: 420px){
  .announcement-title{font-size:0.95rem !important;line-height:1.3 !important;letter-spacing:0.1px;}
}
/* Tablet (medium viewport) adjustments: stack tracks and let Spotify embed use native height */
@media (min-width: 600px) and (max-width: 992px){
  #home .track-content{flex-direction:column !important; align-items:stretch !important; gap:1.125rem !important;}
  #home .player-col{justify-content:center !important;}
  #home .spotify-slot{height:auto !important; padding:0 !important; max-width:620px; margin:0 auto;}
  #home .spotify-slot iframe{height:352px !important;}
}

/* (Deprecated header-container styles removed) */

/* Hamburger button */
.hamburger-button{display:none;position:relative;width:44px;height:44px;border:1px solid rgba(255,255,255,0.25);border-radius:10px;background:rgba(255,255,255,0.06);cursor:pointer;align-items:center;justify-content:center;padding:0;}
.hamburger-button:hover{background:rgba(255,255,255,0.12);}
.hamburger-button:focus{outline:3px solid rgba(99,102,241,0.85);outline-offset:2px;}
/* Hamburger icon (image-based); remove legacy bar styling */
.hamburger-button .hamburger-icon{display:block;width:28px;height:28px;object-fit:contain;pointer-events:none;filter:brightness(1) contrast(1.05);}
@media (max-width:480px){
  .hamburger-button .hamburger-icon{width:26px;height:26px;}
}

/* Mobile / tablet menu panel */
@media (max-width: 768px){
  .hamburger-button{display:inline-flex;}
  .hero-nav-overlay .primary-navigation .nav-link{display:block;width:100%;padding:0.55rem 0.25rem;font-size:0.95rem;line-height:1.2;border-radius:6px;}
  .hero-nav-overlay .primary-navigation .nav-link:hover{background:rgba(255,255,255,0.08);} 
  /* Ensure full menu is scrollable if many items */
  .hero-nav-overlay .primary-navigation{max-height:calc(100vh - 90px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .hero-nav-overlay .primary-navigation::-webkit-scrollbar{width:8px;}
  .hero-nav-overlay .primary-navigation::-webkit-scrollbar-track{background:rgba(255,255,255,0.05);border-radius:8px;}
  .hero-nav-overlay .primary-navigation::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.22);border-radius:8px;}
}
@media (max-width: 480px){
  .primary-navigation{right:0;left:auto;}
}

/* Phone: make single-column event card centered cleanly */
@media (max-width: 480px){
  .event-list { grid-template-columns: 1fr; }
  .event-card { width: 100%; max-width: 28rem; }
}

/* Generic top banner styles (shared) */
.top-image-banner{position:relative;width:100%;overflow:visible;}
.top-image-banner{overflow:visible;}
/* Ensure nav overlay does not push content; keep it layered over banner */
.hero-nav-overlay{position:absolute;top:0;left:0;right:0;z-index:60;}
/* (Removed temporary centered mobile nav override; using right-aligned panel) */
/* Guarantee menu not clipped vertically */
@media (max-width:768px){
  .hero-nav-overlay{overflow:visible !important;}
  body,html{overflow-x:hidden;}
}

/* Tutorials / Membership specific refinements */
.membership-videos .membership-card{position:relative;padding-bottom:2.75rem;}
.membership-videos .membership-cta-wrapper{position:absolute;left:50%;bottom:0.85rem;transform:translateX(-50%);width:100%;display:flex;align-items:center;justify-content:center;padding:0 0.5rem;}
.membership-join-btn{padding:0.7rem 1.5rem;border-radius:999px;font-size:0.95rem;font-weight:600;line-height:1.1;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff2c2c 0%,#c00000 100%);color:#ffffff;text-decoration:none;box-shadow:0 4px 18px -4px rgba(255,0,0,0.5),0 0 0 1px rgba(255,255,255,0.08) inset;transition:transform .22s cubic-bezier(.32,.72,.28,1), box-shadow .25s ease, background .35s ease, filter .35s ease;font-family:Inter,system-ui,sans-serif;letter-spacing:.25px;}
.membership-join-btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px -6px rgba(255,0,0,0.55),0 0 0 1px rgba(255,255,255,0.12) inset;filter:brightness(1.05);}
.membership-join-btn:active{transform:translateY(-1px);box-shadow:0 6px 20px -6px rgba(255,0,0,0.5),0 0 0 1px rgba(255,255,255,0.14) inset;}
.membership-join-btn:focus{outline:3px solid rgba(255,80,80,0.8);outline-offset:3px;}

/* MK2 Resources button (under free playlist) */
.mk2-resources-cta{margin-top:0.65rem;display:flex;align-items:center;justify-content:center;}
.mk2-resources-btn{display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:0.9rem;letter-spacing:.3px;padding:0.55rem 1.3rem;border-radius:999px;text-decoration:none;color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4338ca 45%,#312e81 100%);box-shadow:0 4px 14px -4px rgba(0,0,0,0.55),0 0 0 1px rgba(255,255,255,0.08);transition:background .22s ease, transform .22s cubic-bezier(.32,.72,.28,1), box-shadow .25s ease;}
.mk2-resources-btn:hover{transform:translateY(-3px);background:linear-gradient(135deg,#6d71ff 0%,#4c43d8 45%,#3b3792 100%);box-shadow:0 10px 26px -6px rgba(0,0,0,0.6),0 0 0 1px rgba(255,255,255,0.12);}
.mk2-resources-btn:active{transform:translateY(-1px);}
.mk2-resources-btn:focus{outline:3px solid rgba(99,102,241,0.8);outline-offset:3px;}
@media (max-width:600px){
  .mk2-resources-cta{margin-top:0.55rem;}
  .mk2-resources-btn{width:100%;max-width:380px;font-size:0.82rem;padding:0.5rem 1.1rem;}
}
@media (min-width:769px){
  .tutorials-page #free-tutorials .mk2-resources-cta{margin-top:0.75rem;}
  .tutorials-page #free-tutorials .mk2-resources-btn{font-size:0.88rem;}
}

/* Make embedded video consistent with music page embed sizing */
.membership-videos .video-embed-16x9 iframe{border-radius:14px;}

/* Mobile improvements for tutorials page (match rhythm of music page) */
@media (max-width:600px){
  .tutorials-page .music-section{padding:0.95rem 0.6rem 0.95rem;}
  .tutorials-page .music-section + .music-section{margin-top:0.35rem;padding-top:0.8rem;}
  .tutorials-page .section-header{margin-bottom:0.5rem;justify-content:center;text-align:center;}
  .tutorials-page .section-title{font-size:1.22rem;line-height:1.14;text-align:center;width:100%;letter-spacing:0.1px;}
  .tutorials-page .track-list{gap:0.55rem;display:flex;flex-direction:column;align-items:center;}
  .tutorials-page .track-card.single-embed{padding:0.55rem 0.5rem 0.65rem;max-width:600px;width:100%;}
  .tutorials-page .track-card.single-embed .video-embed-16x9{max-width:100%;margin:0 auto;}
  .tutorials-page .membership-card{padding-bottom:0.6rem;}
  .tutorials-page .membership-join-btn{font-size:0.82rem;padding:0.5rem 1.05rem;}
  .tutorials-page .membership-cta-wrapper{position:static;transform:none;width:100%;padding-top:0.55rem;bottom:auto;display:flex;justify-content:center;}
}
@media (max-width:400px){
  .tutorials-page .section-title{font-size:1.18rem;}
  .tutorials-page .track-card.single-embed{padding:0.5rem 0.45rem 0.6rem;}
  .tutorials-page .membership-join-btn{font-size:0.79rem;padding:0.46rem 0.9rem;}
}

/* Mobile parity tweaks: remove absolute button on very small screens to avoid cramped layout */
/* Desktop (>= 769px) tutorials spacing restore */
@media (min-width:769px){
  /* Desktop tutorials: add a bit more breathing room & keep button in flow to avoid overlap */
  .tutorials-page .music-section{padding:1.6rem 1.25rem 1.55rem !important;max-width:62rem;margin-left:auto;margin-right:auto;}
  .tutorials-page .music-section + .music-section{margin-top:0.95rem !important;padding-top:0.85rem !important;}
  .tutorials-page .section-header{margin-bottom:0.85rem !important;}
  .tutorials-page .section-title{font-size:1.55rem !important;line-height:1.18 !important;letter-spacing:.04px !important;text-align:left !important;}
  .tutorials-page .track-list{gap:1.05rem !important;}
  .tutorials-page .track-card.single-embed{padding:0.95rem 0.9rem 1.4rem !important;box-shadow:0 2px 10px -5px rgba(0,0,0,0.32);border-radius:12px !important;position:relative;}
  /* Membership card: increase bottom padding so button never overlaps video */
  .tutorials-page .membership-card{padding-bottom:1.9rem !important;}
  /* Let button sit in normal flow centered */
  .tutorials-page .membership-cta-wrapper{position:static !important;left:auto !important;right:auto !important;bottom:auto !important;transform:none !important;width:100% !important;padding:0.55rem 0 0 0 !important;display:flex !important;justify-content:center !important;}
  .tutorials-page .membership-join-btn{font-size:0.9rem !important;padding:0.6rem 1.4rem !important;}
  /* Constrain video slightly but give a touch more width than 80% (now 82%) */
  .tutorials-page .track-card.single-embed .video-embed-16x9{max-width:82%;margin-left:auto;margin-right:auto;}
}

/* Large desktop refinement */
@media (min-width:1200px){
  /* Large desktop: scale spacing proportionally while preserving non-overlap */
  .tutorials-page .music-section{padding:2.4rem 2.25rem 2.3rem !important;}
  .tutorials-page .section-title{font-size:1.85rem !important;}
  .tutorials-page .track-card.single-embed{padding:1.35rem 1.25rem 1.9rem !important;}
  .tutorials-page .membership-card{padding-bottom:2.1rem !important;}
}
@media (max-width:480px){
  .tutorials-page .membership-card{padding-bottom:1.15rem;}
  .tutorials-page .membership-cta-wrapper{position:static;transform:none;width:100%;padding-top:0.9rem;}
  .tutorials-page .membership-cta-wrapper .membership-join-btn{width:100%;justify-content:center;}
}
.top-image-banner img.top-banner-image{width:100%;height:26rem;display:block;object-fit:cover;object-position:center center;}
/* Global unified overlay fallback */
.top-image-banner .top-banner-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 14%, rgba(255,255,255,0.05) 30%, rgba(255,255,255,0.02) 46%, rgba(255,255,255,0) 58%, rgba(0,0,0,0.08) 83%, rgba(0,0,0,0.12) 100%);pointer-events:none;mix-blend-mode:normal;}
/* (Removed duplicate overlay rule; unified gradient declared earlier) */
.top-image-banner .top-banner-cta{position:absolute;left:50%;right:auto;transform:translateX(-50%);bottom:2rem;display:flex;align-items:center;justify-content:center;gap:0.5rem;pointer-events:auto;width:fit-content;max-width:90%;}
.top-image-banner .cta-button{padding-left:1.5rem;padding-right:1.5rem;padding-top:0.75rem;padding-bottom:0.75rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);text-decoration:none;white-space:nowrap;}
.top-image-banner .cta-button img{display:block;}
.top-image-banner .cta-button span{line-height:1;display:block;}
.top-image-banner .cta-button:hover{opacity:0.9;}
@media (max-width: 992px){ .top-image-banner img.top-banner-image{height:20rem;} }
@media (max-width: 480px){ .top-image-banner img.top-banner-image{height:16rem;} .top-image-banner .top-banner-cta{bottom:1.25rem;} }
@media (max-width: 480px){ .contact-page .top-banner-cta{ bottom:1.25rem !important; } }


/* Contact-page banner tweaks */
/* Use the same overlay gradient as other pages for consistency */
/* Contact page inherits unified overlay; remove old override */
.contact-page .top-banner-overlay{background:linear-gradient(to bottom, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 14%, rgba(255,255,255,0.05) 30%, rgba(255,255,255,0.02) 46%, rgba(255,255,255,0) 58%, rgba(0,0,0,0.08) 83%, rgba(0,0,0,0.12) 100%) !important;} 
.contact-page .top-image-banner .hero-figcaption{display:none !important;}
.contact-page .top-banner-cta{bottom:2rem;}

/* Make Contact banner sizing match Home/About (remove full-bleed 100vw hack) */
.contact-page > .top-image-banner,
.contact-page .top-image-banner {
  left: auto !important;
  right: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Align Contact page banner crop to match Home/About */
.contact-page .top-image-banner img.top-banner-image {
  object-position: center center !important;
}

/* About page slideshow */
.about-single{padding:3rem 0}
.about-inner{max-width:80rem;margin:0 auto;display:grid;grid-template-columns:58% 40%;gap:2rem;align-items:center;padding:0 2rem;justify-content:center}
.slideshow{position:relative;overflow:visible;border-radius:12px;background:#0b0b0b;aspect-ratio:16/9;width:100%;max-height:520px;min-height:260px;margin-top:0}
/* Push slideshow further down on large screens only */
@media (min-width: 1200px){
  .slideshow{margin-top:5rem;}
}
.slideshow, .slides { touch-action: pan-y; }
.slides{position:relative;height:100%;z-index:1}
.slide{opacity:0;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity 400ms ease;display:block;z-index:1;object-position:center}
.slide.active{opacity:1;position:relative;z-index:1}
.slides .slide:nth-of-type(2){object-position:center bottom !important}
.slides .slide:nth-of-type(3){object-position:center bottom !important}
.slide-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.45);color:#fff;border:0;width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;z-index:10;pointer-events:auto}
.slide-arrow.prev{left:0.5rem}
.slide-arrow.next{right:0.5rem}
.slide-dots{display:flex;gap:0.5rem;position:absolute;left:50%;transform:translateX(-50%);bottom:0.5rem;z-index:10}
.slide-dots .dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.35);border:0}
.slide-dots .dot.active{background:var(--gjs-t-color-primary)}
.about-bio{padding:1rem 0}
.biography-paragraph{color:rgb(229 231 235 / 1);margin-bottom:1rem}
/* About page inline links (improve contrast vs dark bg) */
.about-bio a{color:#a7b4ff;text-decoration:none;position:relative;font-weight:500;transition:color .18s ease, text-shadow .18s ease;} /* soft indigo */
.about-bio a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:linear-gradient(90deg,rgba(167,180,255,0.1),rgba(167,180,255,0.75),rgba(167,180,255,0.1));border-radius:2px;opacity:0;transform:translateY(4px);transition:opacity .25s ease, transform .25s ease;}
.about-bio a:hover,.about-bio a:focus{color:#d4dbff;text-shadow:0 0 6px rgba(167,180,255,0.5);} 
.about-bio a:hover::after,.about-bio a:focus::after{opacity:1;transform:translateY(0);} 
.about-bio a:focus{outline:3px solid rgba(167,180,255,0.5);outline-offset:2px;border-radius:4px;} 


@media (max-width: 992px){
  .about-inner{grid-template-columns:1fr;justify-items:center;align-items:start}
  .slide-arrow{display:flex}
  .slideshow{margin-top:2rem}
}
@media (max-width: 992px){ .slideshow{aspect-ratio:4/3;max-height:420px;min-height:220px} }
@media (max-width: 480px){ .slideshow{aspect-ratio:16/9;max-height:320px;min-height:180px;margin-top:2rem} }

/* Accessibility helpers */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.slide-arrow:focus{outline:3px solid rgba(99,102,241,0.9);outline-offset:2px}
.dot:focus{outline:2px solid rgba(99,102,241,0.9);outline-offset:2px}

/* Header/nav safety */
.site-header{ position:relative; z-index:9999; }
/* Removed pointer-events:auto to allow closed state to disable interaction on mobile */
.primary-navigation{ display:flex !important; }
@media (max-width: 480px){ .primary-navigation{ display:flex !important; } }
.top-image-banner{ position:relative; z-index:1; }

/* Hide any leftover brand elements */
.brand-link, .brand-mark, .brand-name, .brand-icon { display: none !important; }

/* Descendant embed sizing alignment */
#i93upj { height: auto !important; min-height: 0 !important; padding: 0.75rem !important; box-sizing: border-box !important; }
#i93upj iframe { width: 100% !important; height: 100% !important; border: 0; border-radius: 12px; display: block; }
article#home #ip8noq { align-items: stretch !important; }
article#home #ip8noq .player-col { align-items: stretch !important; }
#i8nvyh { width: 100% !important; height: 260px !important; object-fit: cover !important; display:block !important; }
#i01ifs { width: 260px !important; height: 260px !important; }
@media (max-width: 992px) { #i8nvyh { height: 240px !important; } #i01ifs { width: 240px !important; height: 240px !important; } }
@media (max-width: 480px) { #i8nvyh { height: 220px !important; } #i01ifs { width: 220px !important; height: 220px !important; } }

/* Hide placeholder figcaptions in top-image banners sitewide */
.top-image-banner .hero-figcaption {
  display: none !important;
}

/* Inline platform icon row under each track (Descendant, House Mix) */
.track-platforms { display:flex; justify-content:center; align-items:center; gap:3rem; margin:1.35rem 0 0.85rem; flex-wrap:wrap; }
.track-platforms .platform-icon { display:inline-flex; align-items:center; justify-content:center; opacity:0.9; transition:opacity .18s ease, transform .18s ease; position:relative; }
.track-platforms .platform-icon:hover, .track-platforms .platform-icon:focus { opacity:1; transform:translateY(-3px); }
.track-platforms .platform-icon img { width:40px; height:40px; object-fit:contain; display:block; }
@media (max-width: 992px){ .track-platforms { gap:2.5rem; } .track-platforms .platform-icon img { width:38px; height:38px; } }
@media (max-width: 480px){ .track-platforms { gap:1.75rem; margin:1.1rem 0 0.55rem; } .track-platforms .platform-icon img { width:34px; height:34px; } }

/* Bandcamp purchase button (Brighter Days & other single-embed videos) */
/* Centered (was flex-end previously) */
.single-embed .purchase-row{display:flex;justify-content:center;margin-top:0.5rem;}
.purchase-button{--bc-accent:#3aa6ff;position:relative;display:inline-flex;align-items:center;gap:0.5rem;background:linear-gradient(135deg,var(--bc-accent) 0%,#1d74e9 100%);color:#fff;text-decoration:none;font-weight:600;padding:0.55rem 1rem;border-radius:999px;font-size:0.875rem;line-height:1.1;letter-spacing:0.25px;box-shadow:0 4px 12px -2px rgba(0,0,0,0.4),0 0 0 1px rgba(255,255,255,0.08);transition:background .18s ease, transform .18s ease, box-shadow .18s ease;}
.purchase-button:hover,.purchase-button:focus{background:linear-gradient(135deg,#4cb4ff 0%,#2b82ff 100%);transform:translateY(-2px);box-shadow:0 6px 16px -2px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.12);}
.purchase-button:active{transform:translateY(0);}
.purchase-button .icon{font-size:1rem;line-height:1;}
/* (Removed breakpoint override; centering is now default) */

/* Remove bullets and extra padding for track/event lists */
.track-list, .event-list, .track-list li, .event-list li {
  list-style: none !important;
}
.track-list, .event-list { padding-left: 0; margin-left: 0; }

/* Raise My Latest Music section by an additional 20px (total 30px) */
/* Removed legacy home-only padding reduction; uniform heading alignment handled below */

/* === GLOBAL SONG TITLE ENLARGED & TOP ALIGN OVERRIDES === */
/* Applies to all track/song titles except announcement banner titles */
/* ================= Simplified Title System ================= */
/* Base song title */
.song-title:not(.announcement-title){
  text-align:center;
  margin:0 0 0.55rem 0;
  font-weight:700;
  line-height:1.15;
  font-size:2.2rem; /* base size for generic track cards */
  letter-spacing:0.25px;
  transform:none;
}
/* Latest Music sections (home + music) larger + lift */
.latest-music .track-card .song-title:not(.announcement-title){
  font-size:2.85rem; /* unified exact size */
  line-height:1.08;
  letter-spacing:0.3px;
  transform:translateY(-8px);
  margin-bottom:0.44rem;
}
/* Live Looping subtle lift only */
#live-looping-list .track-card .song-title:not(.announcement-title){
  transform:translateY(-4px);
}
/* Ultra-wide slight upscale */
@media (min-width:1600px){
  .song-title:not(.announcement-title){font-size:2.35rem;}
  .latest-music .track-card .song-title:not(.announcement-title){font-size:3rem; transform:translateY(-9px);}
  #live-looping-list .track-card .song-title:not(.announcement-title){transform:translateY(-5px);}
}
/* Music page explicit parity enforcement (in case of future specificity drift) */
/* (Removed music-page specific enlarged override to keep parity with home) */

/* Live Looping section: smaller tier + slight lift */
#live-looping-list .song-title:not(.announcement-title){
  font-size:2.05rem !important; line-height:1.08 !important; margin:0 0 0.55rem 0 !important; letter-spacing:0.25px; transform:translateY(-4px) !important; position:static !important;
}
@media (max-width: 992px){
  #live-looping-list .song-title:not(.announcement-title){font-size:1.85rem !important; transform:translateY(-3px) !important;}
}
@media (max-width: 600px){
  /* Match generic track-card mobile 2rem scale (slightly below latest 2.25rem) */
  #live-looping-list .song-title:not(.announcement-title){font-size:2rem !important; transform:translateY(-3px) !important;}
}
@media (max-width: 400px){
  /* Match very small phone generic 1.78rem scale */
  #live-looping-list .song-title:not(.announcement-title){font-size:1.78rem !important; transform:translateY(-2px) !important;}
}
/* Tablet (kept strong but slightly reduced) */
@media (max-width: 992px){
  .track-card .song-title:not(.announcement-title){font-size:2.25rem !important;}
}
/* Large phones */
@media (max-width: 600px){
  .track-card .song-title:not(.announcement-title){font-size:2rem !important;}
}
/* Very small phones */
@media (max-width: 400px){
  .track-card .song-title:not(.announcement-title){font-size:1.78rem !important;}
}
/* Ensure announcement card keeps its own centering */
.track-card .song-title.announcement-title{ text-align:center !important; }

/* Apply identical vertical shift to music page `latest` section for parity */
#music-page #latest.music-section { padding-top: calc(3rem - 30px); }


/* Phone refinements */
@media (max-width: 480px) {
  /* Tighter section spacing on small screens */
  .music-section,
  .events-section { padding: 2.25rem 1.25rem; }

  /* Compact headers and cards */
  .section-header { margin-bottom: 1rem; }
  .track-card,
  .event-card { padding: 1rem; }

  /* Keep nav readable without wrapping */
  .primary-navigation { gap: 1rem; }
  .nav-link { font-size: 0.95rem; }

  /* Slightly smaller CTA in the banner for phones */
  .top-image-banner .cta-button { padding: 0.625rem 1rem; font-size: 0.95rem; align-items: center; justify-content: center; }

  /* Center section headers and content on phones */
  .section-header { justify-content: center; text-align: center; }

  /* Upcoming Events: center and horizontal */
  .events-section .event-card { max-width: 28rem; margin-left: auto; margin-right: auto; }
  .events-section .event-content { justify-content: center; }
  .events-section .event-details { text-align: center; align-items: center; }
  .events-section .event-meta { justify-content: center; }
}

/* Events layout defaults (horizontal icon + details) */
.events-section .event-content { display: flex; align-items: center; gap: 0.75rem; }
.events-section .event-icon-wrapper { display:flex; align-items:center; justify-content:center; flex: 0 0 auto; }
.events-section .event-details { display: flex; flex-direction: column; gap: 0.375rem; }
.events-section .event-meta { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* Ultra‑narrow phones: keep events horizontal; tracks already stacked via 480px rules */




/* Desktop/tablet: make Spotify players larger and even */
@media (min-width: 993px) {
  /* Make artwork and embeds exactly equal height on desktop */
  #home #i01ifs, #home #idbpyh { width: 352px !important; height: 352px !important; }
  #home #i8nvyh, #home #i9dmzj { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
  #home .player-col { align-items: center !important; justify-content: center !important; }
  #home .spotify-slot { padding: 0 !important; border: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; height: 352px !important; }
  #home .spotify-slot iframe { height: 100% !important; width: 100% !important; display: block !important; }
  /* Raise and slightly enlarge track titles */
  /* (Removed legacy article#home .song-title rule) */
}

/* ===== Site footer with social icons ===== */
.site-footer { margin-top: 2rem; padding: 2.5rem 1.5rem 3rem; border-top: 1px solid rgba(255,255,255,0.08); }
.social-links { display: flex; align-items: center; justify-content: center; gap: 3.75rem; flex-wrap: wrap; }
.social-link { color: #E5E7EB; opacity: 0.85; display: inline-flex; transition: opacity .18s ease, transform .18s ease; }
.social-link:hover, .social-link:focus { opacity: 1; transform: translateY(-4px); }
.social-link img { display: block; width: 40px; height: 40px; object-fit: contain; image-rendering: -webkit-optimize-contrast; }
@media (max-width: 992px){ .social-links { gap: 3.25rem; } .social-link img { width: 38px; height: 38px; } }
@media (max-width: 480px) { .site-footer { padding: 2rem 1rem 2.5rem; } .social-links { gap: 2rem; } .social-link img { width: 34px; height: 34px; } }
/* Boost smaller-feeling glyphs (TikTok, X) without changing layout box */
.social-link[data-icon="tiktok"] img, .social-link[data-icon="x"] img { transform: scale(1.12); }
@media (max-width: 480px) { .social-link[data-icon="tiktok"] img, .social-link[data-icon="x"] img { transform: scale(1.14); } }
/* Slightly reduce YouTube which appears optically larger due to filled rectangle */

/* CLEAN FINAL ANNOUNCEMENT BLOCK v20250924-68 */
.announcement-card{padding:0.6rem 0.9rem !important;display:flex !important;align-items:center !important;justify-content:center !important;}
.announcement-card .announcement-title{margin:0 !important;display:block !important;text-align:center !important;max-width:100% !important;line-height:1.18 !important;font-weight:600 !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:normal !important;letter-spacing:0.15px !important;font-size:clamp(0.7rem,2.2vw,1.05rem) !important;}
@media (max-width:520px){
  .announcement-card{padding:0.55rem 0.75rem !important;}
  .announcement-card .announcement-title{font-size:clamp(0.66rem,3.4vw,0.9rem) !important;}
}
@media (max-width:420px){
  .announcement-card .announcement-title{font-size:clamp(0.6rem,4vw,0.82rem) !important;}
}
@media (max-width:360px){
  .announcement-card .announcement-title{font-size:clamp(0.56rem,4.6vw,0.78rem) !important;}
}
@media (max-width:330px){
  .announcement-card .announcement-title{font-size:clamp(0.52rem,5vw,0.72rem) !important;}
}
@media (max-width:300px){
  .announcement-card .announcement-title{font-size:clamp(0.5rem,5.5vw,0.68rem) !important;}
}

/* (Removed page-specific announcement overrides to keep appearance 1:1 with home) */
/* Safeguard: ensure music page announcement does not drift (no extra padding/margins) */
#music-page #latest .announcement-card{padding:0.6rem 0.9rem !important;}
/* Explicit announcement parity: reuse exact clamp sizing; prevent any future specificity collisions */
#music-page #latest .announcement-card .announcement-title{font-size:clamp(0.7rem,2.2vw,1.05rem) !important;line-height:1.18 !important;font-weight:600 !important;letter-spacing:0.15px !important;margin:0 !important;}

/* MUSIC PAGE ANNOUNCEMENT FINAL SIZE OVERRIDE
   Force identical visual scale to home card after scripts run. Using explicit pixel targets mirroring home title tier logic. */
@media (min-width:993px){
  #music-page #latest .announcement-card .announcement-title{font-size:1.625rem !important;line-height:1.2 !important;font-weight:700 !important;}
}
@media (max-width:992px){
  #music-page #latest .announcement-card .announcement-title{font-size:1.375rem !important;line-height:1.25 !important;font-weight:700 !important;}
}
@media (max-width:480px){
  #music-page #latest .announcement-card .announcement-title{font-size:1.25rem !important;line-height:1.22 !important;}
}

/* HOME PAGE ANNOUNCEMENT SIZE MATCH (mirror music page explicit scaling) */
@media (min-width:993px){
  #home .announcement-card .announcement-title{font-size:1.625rem !important;line-height:1.2 !important;font-weight:700 !important;}
}
@media (max-width:992px){
  #home .announcement-card .announcement-title{font-size:1.375rem !important;line-height:1.25 !important;font-weight:700 !important;}
}
@media (max-width:480px){
  #home .announcement-card .announcement-title{font-size:1.25rem !important;line-height:1.22 !important;}
}

/* ===================== MUSIC PAGE LATEST DESKTOP PARITY (Spotify/artwork) ===================== */
@media (min-width: 993px){
  /* Match home 352px square artwork */
  #music-page #latest #i01ifs, #music-page #latest #idbpyh { width:352px !important; height:352px !important; }
  #music-page #latest #i8nvyh, #music-page #latest #i9dmzj { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; }
  /* Center player like home and remove dashed border/padding */
  #music-page #latest .player-col { align-items:center !important; justify-content:center !important; }
  #music-page #latest #i93upj, #music-page #latest #ikov7n { padding:0 !important; border:0 !important; display:flex !important; align-items:center !important; justify-content:center !important; height:352px !important; box-sizing:border-box !important; }
  #music-page #latest #i93upj iframe, #music-page #latest #ikov7n iframe { height:100% !important; width:100% !important; display:block !important; }
  /* Title vertical offset identical to home */
  /* (Removed legacy #music-page latest song-title rule) */
}


/* === REMOVED UNIFIED 2.35rem OVERRIDES (restored older hierarchy) === */
/* Latest Music stays large (2.85rem). Live Looping keeps smaller tier (2.05→responsive). */

/* LIVE LOOPING SINGLE-EMBED TITLE OVERRIDES (ensure larger mobile sizes) */
#live-looping-list > .track-card.single-embed .song-title:not(.announcement-title){
  font-size:2.05rem !important;
  line-height:1.08 !important;
  transform:translateY(-4px) !important;
  margin-bottom:0.55rem !important;
  letter-spacing:0.25px !important;
}
@media (max-width:992px){
  #live-looping-list > .track-card.single-embed .song-title:not(.announcement-title){font-size:1.95rem !important;}
}
@media (max-width:600px){
  #live-looping-list > .track-card.single-embed .song-title:not(.announcement-title){font-size:2rem !important;transform:translateY(-3px) !important;}
}
@media (max-width:400px){
  #live-looping-list > .track-card.single-embed .song-title:not(.announcement-title){font-size:1.78rem !important;transform:translateY(-2px) !important;}
}
/* END LIVE LOOPING SINGLE-EMBED TITLE OVERRIDES */

/* (Tutorials-specific styling removed; tutorials now fully reuse .music-section, .track-list, .track-card patterns) */
/* === Unified First Content Section Heading Offset (final lock) === */
#music.music-section,
#live-looping.music-section,
#free-tutorials.music-section { padding-top:16px !important; }
@media (max-width: 992px){
  #music.music-section,
  #live-looping.music-section,
  #free-tutorials.music-section { padding-top:12px !important; }
}
/* Tutorials width constraint (v20251002-049) */
body.tutorials-page #free-tutorials .track-list,
body.tutorials-page #premium-tutorials .track-list { max-width:56rem; margin-left:auto; margin-right:auto; }
@media (max-width: 1100px){
  body.tutorials-page #free-tutorials .track-list,
  body.tutorials-page #premium-tutorials .track-list { max-width:60rem; }
}
@media (max-width: 900px){
  body.tutorials-page #free-tutorials .track-list,
  body.tutorials-page #premium-tutorials .track-list { max-width:100%; }
}
/* Single-embed tutorial cards: center video and reduce side padding to feel tighter */
body.tutorials-page #free-tutorials .track-card.single-embed,
body.tutorials-page #premium-tutorials .track-card.single-embed { padding:1.25rem 1.25rem 1.5rem; }
@media (min-width: 993px){
  body.tutorials-page #free-tutorials .track-card.single-embed .video-embed-16x9,
  body.tutorials-page #premium-tutorials .track-card.single-embed .video-embed-16x9 { max-width:960px; margin-left:auto; margin-right:auto; }
}
/* Membership button row: limit width and center within constrained layout */
body.tutorials-page #premium-tutorials .track-platforms { max-width:960px; margin-left:auto; margin-right:auto; justify-content:center !important; }

/* DESKTOP EVENTS FULL-WIDTH OVERRIDE (match track card width) */
@media (min-width:993px){
  .events-section .event-card{max-width:100% !important;width:100% !important;}
  .events-section .event-content{justify-content:flex-start !important;}
}

/* === MUSIC PAGE LATEST TITLE SIZE RESTORE (match home) === */
/* Wipe earlier scattered small overrides (1.3–1.375rem) using higher specificity */
#music-page #latest.latest-music .track-card .song-title:not(.announcement-title){
  font-size:2.85rem !important;
  line-height:1.08 !important;
  letter-spacing:0.3px !important;
  transform:translateY(-8px) !important;
  margin-bottom:0.44rem !important;
}
@media (max-width:992px){
  #music-page #latest.latest-music .track-card .song-title:not(.announcement-title){font-size:2.5rem !important;}
}
@media (max-width:600px){
  #music-page #latest.latest-music .track-card .song-title:not(.announcement-title){font-size:2.25rem !important;}
}
@media (max-width:480px){
  #music-page #latest.latest-music .track-card .song-title:not(.announcement-title){font-size:2.15rem !important;}
}
@media (max-width:400px){
  #music-page #latest.latest-music .track-card .song-title:not(.announcement-title){font-size:2rem !important;}
}
/* === END MUSIC PAGE LATEST TITLE SIZE RESTORE === */





/* =================== FINAL OVERRIDES (v20250925-029) =================== */
/* Lock featured Amalgamate artwork size large (desktop 352 / tablet 240 / phone 220) */
article#home #track-amalgamate .track-cover-figure { width:352px !important; height:352px !important; }
@media (max-width: 992px){ article#home #track-amalgamate .track-cover-figure { width:240px !important; height:240px !important; } }
@media (max-width: 480px){ article#home #track-amalgamate .track-cover-figure { width:220px !important; height:220px !important; } }

/* Music page featured track (Amalgamate) parity with home on desktop */
#music-page #latest #track-amalgamate.featured-track .track-content{gap:1rem !important;}
@media (min-width: 993px){
  #music-page #latest #track-amalgamate.featured-track .track-content{flex-direction:row !important;align-items:center !important;}
  #music-page #latest #track-amalgamate.featured-track .track-cover-figure{width:352px !important; height:352px !important;}
  #music-page #latest #track-amalgamate.featured-track .spotify-slot{padding:0 !important;border:0 !important;height:352px !important;display:flex !important;align-items:center !important;justify-content:center !important;}
  #music-page #latest #track-amalgamate.featured-track .spotify-slot iframe{height:100% !important;width:100% !important;display:block !important;}
}
@media (max-width: 992px){
  #music-page #latest #track-amalgamate.featured-track .track-content{flex-direction:column !important;align-items:stretch !important;}
  #music-page #latest #track-amalgamate.featured-track .artwork-col, 
  #music-page #latest #track-amalgamate.featured-track .player-col{width:100% !important;}
}

/* Ensure Spotify iframe visibility on music page (especially mobile) */
#music-page #latest .spotify-slot {display:flex !important;width:100% !important;min-height:152px !important;align-items:center !important;justify-content:center !important;}
#music-page #latest .spotify-slot iframe { width:100% !important; display:block !important; min-height:152px !important; opacity:1 !important; visibility:visible !important; }
@media (max-width:600px){ #music-page #latest .spotify-slot, #music-page #latest .spotify-slot iframe { min-height:180px !important; } }
/* Prevent clipping on mobile: ensure ancestors can expand */
@media (max-width: 992px){
  #music-page #latest .track-card, 
  #music-page #latest .track-content,
  #music-page #latest .player-col,
  #music-page #latest .spotify-slot { overflow:visible !important; height:auto !important; }
  #music-page #latest .spotify-slot iframe { height:352px !important; }
}
/* Featured utility (v029) */
.featured-track .track-cover-figure, .featured-track .featured-art { width:352px !important; height:352px !important; }
@media (max-width: 992px){ .featured-track .track-cover-figure, .featured-track .featured-art { width:240px !important; height:240px !important; } }
@media (max-width: 480px){ .featured-track .track-cover-figure, .featured-track .featured-art { width:220px !important; height:220px !important; } }

/* === FINAL MOBILE STACK FIX (v20250925-030) === */
@media (max-width: 992px){
  /* Force vertical stacking for Latest Music on music page */
  #music-page #latest .track-content{flex-direction:column !important;align-items:stretch !important;gap:1.125rem !important;}
  #music-page #latest .artwork-col{justify-content:center !important;width:100% !important;}
  #music-page #latest .player-col{justify-content:center !important;width:100% !important;}
  #music-page #latest .spotify-slot{height:auto !important;min-height:352px !important;padding:0 !important;border:0 !important;}
  #music-page #latest .spotify-slot iframe{height:352px !important;}
}

/* === MOBILE SPOTIFY OUTLINE CLEANUP (v20251002-082) === */
@media (max-width:600px){
  /* Remove any dashed border/outline artifacts on Home Descendant & House Mix players */
  #home .spotify-slot{border:0 !important;box-shadow:none !important;background:transparent !important;padding:0 !important;}
  #home .spotify-slot iframe{outline:0 !important;box-shadow:none !important;background:#000 !important;border:0 !important;}
  /* Extra specificity for individual track ids if earlier rules reapply dashed border */
  #home #track-amalgamate .spotify-slot,
  #home #igshan .spotify-slot,
  #home #iycuxd .spotify-slot{border:0 !important;}
}
@media (max-width:480px){
  /* Slightly tighter gap on very small phones */
  #music-page #latest .track-content{gap:0.9rem !important;}
}
/* Featured embed utility (v20251002-033) */
.featured-embed{display:flex !important;align-items:center !important;justify-content:center !important;width:100% !important;height:352px !important;min-height:352px !important;padding:0 !important;border:0 !important;overflow:visible !important;}
.featured-embed iframe{width:100% !important;height:100% !important;display:block !important;opacity:1 !important;visibility:visible !important;border:0 !important;}
@media (max-width:992px){ .featured-embed, .featured-embed iframe{height:352px !important;min-height:352px !important;} }
@media (max-width:480px){ .featured-embed, .featured-embed iframe{height:352px !important;min-height:352px !important;} }
/* === Amalgamate mobile parity fix (v20251002-032) === */
@media (max-width: 992px){
  /* Home: make sure featured embed fills expected 352px visual height */
  #home #track-amalgamate .spotify-slot{height:352px !important;min-height:352px !important;padding:0 !important;border:0 !important;}
  #home #track-amalgamate .spotify-slot iframe{height:352px !important;}
  /* Music page: explicit ensure visibility even if earlier rules interfere */
  #music-page #latest #track-amalgamate .spotify-slot{height:352px !important;min-height:352px !important;overflow:visible !important;padding:0 !important;border:0 !important;}
  #music-page #latest #track-amalgamate .spotify-slot iframe{height:352px !important;display:block !important;opacity:1 !important;visibility:visible !important;}
}
@media (max-width:480px){
  #home #track-amalgamate .spotify-slot iframe,
  #music-page #latest #track-amalgamate .spotify-slot iframe{height:352px !important;}
}





/* === EMBED FALLBACK (outline removed v20251002-036) === */
#music-page #latest #track-amalgamate .featured-embed{position:relative;}
#music-page #latest #track-amalgamate .featured-embed .embed-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.35rem;font-size:0.9rem;line-height:1.2;padding:0.75rem;text-align:center;background:linear-gradient(135deg,rgba(30,30,30,0.92),rgba(10,10,10,0.85));color:#fff;z-index:2;}
#music-page #latest #track-amalgamate .featured-embed.loaded .embed-fallback{display:none !important;}
#music-page #latest #track-amalgamate .featured-embed .fallback-open-button{display:inline-block;padding:0.4rem 0.85rem;background:#1DB954;color:#fff;font-weight:600;border-radius:999px;text-decoration:none;font-size:0.8rem;box-shadow:0 0 0 1px rgba(255,255,255,0.15);}
#music-page #latest #track-amalgamate .featured-embed .fallback-open-button:active{transform:translateY(1px);} 
#music-page #latest #track-amalgamate .featured-embed iframe.spotify-iframe{position:relative;z-index:3;}
@media (prefers-reduced-motion:no-preference){
  #music-page #latest #track-amalgamate .featured-embed .embed-fallback{animation:flash-indicator 1.4s ease-in-out infinite alternate;}
  @keyframes flash-indicator{from{opacity:0.55;}to{opacity:0.9;}}
}
@media (max-width:600px){
  #music-page #latest #track-amalgamate .featured-embed .embed-fallback{font-size:0.82rem;padding:0.6rem;}
}
/* Force explicit heights again to defeat any external overrides */
#music-page #latest #track-amalgamate .featured-embed, 
#music-page #latest #track-amalgamate .featured-embed iframe{height:352px !important;min-height:352px !important;}




