/* Modern TigerFM styles - light/dark theme, fluid layout, subtle motion */
/*
  Designed and built by: Landon Liedtke
  https://landonliedtke.com
  (Author credit — non-rendering comment for source provenance)
*/

/* additional provenance markers (no rendering impact) */
/* ll-author: L.Liedtke */
/* author-hex: 4c616e646f6e204c69656474746b65 */
/* author-rot13: Ynaqba Yvqrgfxr */
/* author-base64: TGFuZG9uIExpZWR0a2U= */
/* spaced: L a n d o n   L i e d t k e */
/* underscore: Landon_Liedtke */
/* obf1: LnLdke (consonant-collapse) */
/* credit-alt: site crafted by Landon */
:root{
  --max-width:1200px;
  --radius:14px;
  --glass: rgba(255,255,255,0.6);
  --muted: #6b7280;
  --easing:cubic-bezier(.2,.9,.2,1);
  --accent-orange: #ff7a2d; /* brand orange */
  --accent-green: #1b7a4a;  /* brand green */
  --shadow-1: 0 6px 18px rgba(15,23,42,0.08);
  --shadow-2: 0 12px 30px rgba(2,6,23,0.12);
}

/* Dark theme variables (will be applied when .theme-dark on <html>) */
:root.theme-dark{
  --bg: #071024;
  --panel: rgba(255,255,255,0.03);
  --text: #e6eef8;
  --muted: #9fb0c8;
  --glass: rgba(255,255,255,0.04);
}

/* Light theme defaults */
:root:not(.theme-dark){
  --bg: linear-gradient(180deg,#fff #f7fafc);
  --panel: rgba(255,255,255,0.8);
  --text: #06213a;
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale}
.container{max-width:var(--max-width);margin:0 auto;padding:1.25rem}

/* Make headers and subheaders more compact */
.brand h1{font-size:1rem}
h1,h2,h3,h4{margin:0 0 0.25rem 0;font-weight:700;line-height:1.15}
h2{font-size:1.25rem}
h3{font-size:1.02rem}
h4{font-size:0.95rem}
p{font-size:0.98rem}

/* Eyebrow label (small, uppercase, brand accent) */
.eyebrow{display:inline-block;font-size:0.72rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:0.12rem}
.hero-card .eyebrow{color:var(--accent-orange)}
/* Ensure mini/hero-specific eyebrow text uses the brand orange (hero uses white text elsewhere) */
.hero-visual .mini-eyebrow,
.hero-visual .eyebrow,
.hero-card .mini-eyebrow{color:var(--accent-orange)}

/* Modern bold headings */
.container.content h3, .container.content h2{font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;font-weight:800;letter-spacing:0.6px}
.hero-card h2{font-size:1.3rem;font-weight:900}

/* Panels: only .section-panel gets boxed/panel styling */
.section-panel{
  background:var(--panel);
  padding:1rem 1.15rem;
  border-radius:10px;
  box-shadow:var(--shadow-1);
  border:1px solid rgba(0,0,0,0.04);
  margin-top:0.6rem;
}

/* Contact panel layout */
.contact-grid{display:grid;grid-template-columns:1fr 320px;gap:1.25rem;align-items:start}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr;}}
.contact-left{min-width:0}
.contact-right{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));padding:0.85rem;border-radius:10px}

/* Form controls */
label{display:block;margin-top:0.6rem;font-weight:700}
input[type="text"], input[type="email"], input[type="tel"], select, textarea{
  width:100%;padding:0.7rem 0.9rem;border-radius:10px;border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.03);color:var(--text);margin-top:0.25rem;font-size:0.98rem;box-shadow:inset 0 1px 0 rgba(255,255,255,0.03);
  -webkit-appearance:none;appearance:none;padding-right:2.6rem
}
textarea{min-height:120px}
.contact-left .cta-row{margin-top:0.9rem}

/* Placeholder colors */
input::placeholder, textarea::placeholder, select::placeholder{color:rgba(255,255,255,0.8)}

/* Stronger focus state */
input:focus, select:focus, textarea:focus{border-color:rgba(255,122,45,0.95);box-shadow:0 10px 36px rgba(27,122,74,0.08), 0 0 0 6px rgba(255,122,45,0.1)}

/* Light-theme overrides so controls remain visible on light backgrounds */
:root:not(.theme-dark) input[type="text"],
:root:not(.theme-dark) input[type="email"],
:root:not(.theme-dark) input[type="tel"],
:root:not(.theme-dark) select,
:root:not(.theme-dark) textarea{
  border:1px solid rgba(0,0,0,0.08);background:rgba(255,255,255,0.92);box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);color:var(--text)
}
:root.theme-dark input[type="text"],
:root.theme-dark input[type="email"],
:root.theme-dark input[type="tel"],
:root.theme-dark select,
:root.theme-dark textarea{
  border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.02);box-shadow:inset 0 1px 0 rgba(255,255,255,0.02);color:var(--text)
}
:root:not(.theme-dark) input::placeholder, :root:not(.theme-dark) textarea::placeholder{color:rgba(2,6,23,0.36)}

/* Make the contact form visually lighter and approachable */
.contact-left form{background:rgba(255,255,255,0.02);padding:0.9rem;border-radius:10px}
.contact-left h4{margin-top:0;margin-bottom:0.35rem}

/* Subtle focus state */
input:focus, select:focus, textarea:focus{outline:3px solid rgba(255,122,45,0.12);outline-offset:3px}


/* Week-grid calendar-like schedule */
.week-grid{display:block}
.week-grid .week-head{display:grid;grid-template-columns:1.2fr repeat(5,1fr) 1.2fr;gap:0.5rem;margin-bottom:0.5rem}
.week-grid .week-head div{font-weight:800;text-align:center;padding:0.45rem 0;border-radius:8px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));}
.week-grid .week-body{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem}
.week-grid .week-body{display:grid;grid-template-columns:1.2fr repeat(5,1fr) 1.2fr;gap:0.5rem}
.week-grid .day{min-height:68px;padding:0.6rem;border-radius:8px;background:rgba(255,255,255,0.03);font-size:0.95rem}
.week-grid .day{min-height:78px;padding:0.8rem;border-radius:8px;background:rgba(255,255,255,0.03);font-size:0.95rem}
.week-grid .day p{margin:0}

/* Weekend abbreviations: slightly muted and smaller for balance */
.week-grid .day:nth-child(1), .week-grid .day:nth-child(7){
  font-size:0.95rem;color:var(--muted);
  display:block;
  -webkit-line-clamp:unset;
  -webkit-box-orient:unset;
  line-clamp:unset;
  overflow:visible;
  max-height:none; /* allow full height */
}

/* Prevent the grid from compressing too much on wide viewports: allow horizontal scroll
   when necessary and set a sensible min-width so weekend columns keep space. */
.week-grid{overflow-x:auto;-webkit-overflow-scrolling:touch}
.week-grid .week-head, .week-grid .week-body{min-width:0}
@media(min-width:1100px){
  .week-grid .week-head, .week-grid .week-body{min-width:920px}
}

@media(max-width:860px){
  .week-grid .week-head, .week-grid .week-body{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .week-grid .week-head, .week-grid .week-body{grid-template-columns:1fr}
}

/* Mobile/tablet: make the weekly schedule stack into readable day cards up to 900px */
@media (max-width:900px) {
  .week-grid { overflow-x:visible; }
  /* hide the compact weekday header to save vertical space; keep semantic table role */
  .week-grid .week-head { display:none; }
  .week-grid .week-body { display:block; }
  .week-grid .day {
    display:block;
    min-height:auto;
    padding:0.9rem 1rem;
    margin-bottom:0.6rem;
    border-radius:10px;
    background:rgba(255,255,255,0.04);
    font-size:1rem;
    line-height:1.3;
    white-space:normal;
    word-break:break-word;
  }
  /* emphasize weekend items slightly but keep them readable */
  .week-grid .day:nth-child(1), .week-grid .day:nth-child(7){
    color:var(--muted);
    font-size:0.98rem;
  }
}

/* Show concise summaries in cards on small screens to reduce verbosity */
@media (max-width:900px) {
  /* Target the Sports card specifically so other cards keep full content */
  /* summary visibility is controlled by JS via aria-hidden on paragraphs */
  #sports-card .card-summary-mobile{display:block;color:var(--text);}
}

/* Prefer JS-controlled hiding via aria-hidden — only hide paragraphs when explicitly marked */
#sports-card > p[aria-hidden="true"]{display:none}
#sports-card .card-summary-mobile{display:none}

@media (max-width:900px) {
  /* Show summary by default on small screens, but JS will manage aria-hidden state */
  #sports-card .card-summary-mobile{display:block}
}

/* Slightly tighten spacing inside panels */
.container.content > .section-panel + .cards,
.container.content > .section-panel + p{
  margin-top:0.75rem;
}

/* Small helper for inline small captions */
.muted{font-size:0.92rem}


.site-header{/* Header: fixed so the navbar stays visible at all times */
  --header-height:72px; /* default reserved height for the header */
  backdrop-filter: blur(8px);
  background:linear-gradient(90deg, rgba(255,122,45,0.9), rgba(27,122,74,0.9));
  color:white;
  position:fixed; /* always fixed to the top */
  top:0;left:0;right:0;width:100%;
  z-index:120;box-shadow:var(--shadow-1);border-bottom:1px solid rgba(255,255,255,0.04);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:0.85rem 0}
/* Make sure page content is not hidden under the fixed header */
main{padding-top:var(--header-height)}
.brand{display:flex;gap:0.85rem;align-items:center;text-decoration:none;color:inherit}
.logo{width:64px;height:64px;object-fit:cover;border-radius:10px;border:2px solid rgba(255,255,255,0.12);box-shadow:0 6px 18px rgba(0,0,0,0.12)}
.brand h1{font-size:1.15rem;margin:0;letter-spacing:0.2px}
.tag{margin:0;font-size:0.82rem;opacity:0.95}
.nav{display:flex;gap:0.5rem;align-items:center}
.nav a{color:inherit;text-decoration:none;font-weight:600;padding:0.45rem 0.6rem;border-radius:8px;transition:background 220ms var(--easing), transform 200ms var(--easing)}
.nav a:hover{background:rgba(255,255,255,0.06);transform:translateY(-2px)}
.controls{display:flex;gap:0.5rem;align-items:center}

/* Mobile navigation: hamburger toggle and drawer */
.nav-toggle{display:none;background:transparent;border:0;padding:0.4rem;border-radius:8px;color:inherit;cursor:pointer}
.nav-toggle .hamburger{display:block;width:22px;height:2px;background:currentColor;position:relative}
.nav-toggle .hamburger:before,.nav-toggle .hamburger:after{content:'';position:absolute;left:0;right:0;height:2px;background:currentColor}
.nav-toggle .hamburger:before{top:-6px}
.nav-toggle .hamburger:after{bottom:-6px}

/* Visible hamburger styling for mobile: bigger hit area and contrast */
.nav-toggle{display:none;color:inherit}
.nav-toggle{background:transparent;border:0;padding:0.5rem;border-radius:8px}
.nav-toggle .hamburger{width:22px;height:2px;background:currentColor;display:block;position:relative;transition:transform 220ms var(--easing)}
.nav-toggle .hamburger:before,.nav-toggle .hamburger:after{content:'';position:absolute;left:0;width:22px;height:2px;background:currentColor;transition:transform 220ms var(--easing), opacity 180ms ease}
.nav-toggle .hamburger:before{transform:translateY(-7px)}
.nav-toggle .hamburger:after{transform:translateY(7px)}

/* When nav is open, transform hamburger to an X */
.nav.nav-open .nav-toggle .hamburger,
.nav-toggle[aria-expanded="true"] .hamburger{background:transparent}
.nav-toggle[aria-expanded="true"] .hamburger:before{transform:translateY(0) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .hamburger:after{transform:translateY(0) rotate(-45deg)}

/* Ensure the hamburger is always visible and contrasted on small screens */
@media(max-width:900px){
  .nav-toggle{display:inline-flex;color:var(--text);align-items:center;justify-content:center}
  /* reduce left padding so logo aligns closer to the left edge */
  .header-inner{padding-left:0.2rem;padding-right:0.5rem;position:relative}
  .brand{padding-left:0;margin-left:0}
  /* small hamburger for mobile */
  .nav-toggle .hamburger{width:16px;height:2px}
  .nav-toggle .hamburger:before{transform:translateY(-6px)}
  .nav-toggle .hamburger:after{transform:translateY(6px)}
 
}

/* Reduce header height for smaller viewports and keep main padding in sync */
@media(max-width:900px){
  .site-header{ --header-height:64px; }
  main{ padding-top:var(--header-height); }
}

@media(max-width:900px){
  .nav{position:fixed;inset:auto 0 0 0;left:0;right:0;top:64px;padding:0.8rem 0.6rem;display:flex;flex-direction:column;gap:0.6rem;align-items:stretch;border-top:0;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity 220ms var(--easing), transform 220ms var(--easing);z-index:240}
  /* Stronger, solid background for the mobile drawer to improve legibility */
  /* Use a near-opaque panel color so links have consistent contrast */
  .nav{background:rgba(2,6,23,0.92);backdrop-filter:none}
  .nav a{padding:0.95rem 1rem;background:rgba(255,255,255,0.04);border-radius:10px;margin:0;text-align:center;color:var(--text);font-weight:600}
  /* Light theme: use a dark semi-opaque drawer so white text and accents remain visible */
  :root:not(.theme-dark) .nav{background:rgba(2,6,23,0.92)}
  :root:not(.theme-dark) .nav a{background:rgba(255,255,255,0.06);color:var(--text)}
  /* Dark theme: slightly lighter link tiles on dark drawer for readability */
  :root.theme-dark .nav{background:rgba(2,6,23,0.92)}
  :root.theme-dark .nav a{background:rgba(255,255,255,0.04);color:var(--text)}
  .nav.nav-open{opacity:1;transform:none;pointer-events:auto}
  .nav-toggle{display:inline-block}
  .header-inner{gap:0.5rem}
  .brand{gap:0.6rem}

  /* Hide the trailing "Us" on the Support button for mobile only */
  #btn-support span { display: none !important; }
}

/* When nav open, prevent background scroll */
html.nav-locked, body.nav-locked, .nav-locked * { touch-action: none; }

/* Conservative link reset: only affect plain anchors without class or id so pre-styled links keep their styles */
/* Don't touch navbar anchors — keep their explicit styles */
.nav a, .nav a:hover, .nav a:focus { text-decoration: none; color: inherit; }

/* Conservative reset for plain anchors outside nav */
a:not([class]):not([id]):not(.nav a){color:inherit;text-decoration:none;transition:color 180ms ease, text-decoration-color 180ms ease}
a:not([class]):not([id]):not(.nav a):hover{text-decoration:underline;color:var(--accent-green)}
a:not([class]):not([id]):not(.nav a):focus{outline:3px solid rgba(255,122,45,0.12);outline-offset:3px}

/* Listen button in nav: visually same as nav links but with animated hover background */
.listen-btn{background:transparent;color:inherit;border:0;padding:0.45rem 0.6rem;border-radius:8px;font-weight:600;cursor:pointer;position:relative;overflow:hidden;font-family:inherit;font-size:1rem}
.listen-btn::before{content:'';position:absolute;left:-40%;top:0;width:160%;height:100%;background:linear-gradient(90deg, rgba(255,255,255,0.08), rgba(27,160,94,0.22), rgba(255,255,255,0.08));transform:skewX(-12deg) translateX(-100%);transition:transform 380ms cubic-bezier(.15,.9,.3,1), opacity 260ms ease;opacity:0}
.listen-btn:hover::before{transform:skewX(-12deg) translateX(0%);opacity:1}
.listen-btn:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 12px 34px rgba(27,160,94,0.18);filter:brightness(1.06)}
.listen-btn:focus{outline:3px solid rgba(27,122,74,0.16);outline-offset:3px}

/* Live dot: small indicator that pulses when listening */
.listen-btn .live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.9);margin-right:0.5rem;vertical-align:middle;opacity:0;transform:scale(0.8)}
.listen-btn.listening .live-dot{background:radial-gradient(circle at 35% 30%, #fff, #e6ffef 20%, var(--accent-green));box-shadow:0 6px 18px rgba(27,160,94,0.22);opacity:1;transform:scale(1);animation:live-pulse 1200ms ease-out infinite}
.listen-btn .listen-label{vertical-align:middle}

@keyframes live-pulse{
  0%{box-shadow:0 6px 18px rgba(27,160,94,0.18);transform:scale(1)}
  50%{box-shadow:0 18px 46px rgba(27,160,94,0.28);transform:scale(1.18)}
  100%{box-shadow:0 6px 18px rgba(27,160,94,0.18);transform:scale(1)}
}

/* Hero */
.hero{padding:3rem 0;background:linear-gradient(180deg, rgba(255,122,45,0.06), rgba(27,122,74,0.04));border-bottom:1px solid rgba(0,0,0,0.04);
  /* No extra top margin; header space is handled by main{padding-top}. */
  margin-top: 0;
}
.hero .container{display:block}
  .hero-card{background:var(--panel);padding:1rem;border-radius:12px;box-shadow:var(--shadow-1);border:1px solid rgba(0,0,0,0.04);margin-top:30vh}

  /* Ensure the hero layout and player card match heights: place them in a grid on wide viewports */
  @media(min-width:1100px){
    .hero-visual .hero-layers{grid-template-columns:1fr 420px;align-items:start;max-width:var(--max-width);margin:0 auto}
    .hero-card{margin-top:35vh}
    /* Player placeholder sits to the right and should match the card height */
    .player-placeholder{height:auto}
    .hero-visual .hero-layers > .brand-mini, .hero-card{align-self:stretch}
  }
.hero h2, .hero-card h2{font-family:'Playfair Display', serif;font-size:2.6rem;line-height:1.02;margin:0 0 0.45rem 0;color:var(--text);letter-spacing:-0.6px}
.lead{font-size:1.02rem;margin-top:0.35rem;color:var(--muted);max-width:64ch}

/* Tiger-themed hero visual inside the 75vh margin */
  .hero-visual{height:48vh;margin-top:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:60;background:linear-gradient(135deg,var(--accent-orange),var(--accent-green));color:#fff;border-radius:20px;padding:1rem;margin-bottom:0;box-shadow:0 20px 64px rgba(3,10,20,0.14);overflow:visible}
  /* Always keep hero visual text white regardless of theme */
  .hero-visual, .hero-visual *{color:#fff !important}

  /* But ensure the hero-card (overlapping white panel) retains its own color rules */
  .hero-card, .hero-card *{color:inherit !important}
  .hero-visual .hero-layers{width:100%;max-width:1100px;display:grid;grid-template-columns:1fr;gap:1rem;padding:1.5rem;position:relative;opacity:1;transform:none;border-radius:14px;overflow:hidden}
  /* Cap hero layer width and center it so overlapping hero-card remains visible on small screens */
  @media(max-width:1100px){
    .hero-visual .hero-layers{max-width:var(--max-width);margin:0 auto;padding-left:1rem;padding-right:1rem}
    .hero-card{margin-top:1rem}
  }
  .hero-visual:before{content:'';position:absolute;inset:0;z-index:-2;background-image:linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.02)), repeating-linear-gradient(120deg, rgba(0,0,0,0.04) 0 6px, rgba(255,122,45,0.06) 6px 12px);filter:blur(10px);opacity:0.92;border-radius:20px}
  .hero-visual .hero-layers:after{content:'';position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:-1;background-image:radial-gradient(circle at 8% 12%, rgba(255,122,45,0.07), transparent 20%);} 

  /* subtle gloss overlay for a slick modern sheen */
  .hero-visual:after{content:'';position:absolute;left:6%;right:6%;top:6%;height:36%;background:linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.02));opacity:0.28;pointer-events:none;border-radius:18px;mix-blend-mode:soft-light;z-index:1}
  /* Listen button removed from the header — no-op */

  /* add a faint diagonal accent stripe */
  .hero-visual .accent-stripe{position:absolute;right:8%;top:12%;width:220px;height:10px;background:linear-gradient(90deg, rgba(255,255,255,0.12), rgba(255,255,255,0));filter:blur(6px);transform:rotate(-18deg);opacity:0.5;border-radius:6px;z-index:2}
.hero-visual .brand-mini{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:0.75rem;background:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));padding:1rem 1.25rem;border-radius:12px;box-shadow:var(--shadow-2);border:1px solid rgba(255,255,255,0.06);width:62%;backdrop-filter:blur(6px)}

/* brand-row: left content + right control */
.brand-row{display:flex;align-items:flex-start;justify-content:flex-start;gap:1rem;width:100%}
.brand-row .mini-eyebrow,.brand-row .mini-title{margin:0;text-align:left}
.mini-copy{display:flex;flex-direction:column;align-items:flex-start;gap:0.2rem}
.mini-sub{font-size:0.95rem;color:rgba(255,255,255,0.92);opacity:0.95;margin:0;font-weight:700}

/* Hide legacy play-circle if still present in DOM (we removed it from markup) */
.play-circle{display:none !important;visibility:hidden}

@media(max-width:900px){
  .brand-row{flex-direction:column;align-items:flex-start}
  .hero-visual .brand-mini{flex-direction:column;align-items:center}
  .play-circle{width:48px;height:48px;margin-top:0.5rem}
  /* Make hero stack vertically and avoid overlap */
  .hero-visual{margin-bottom:0;padding:0.8rem}
  .hero-visual .hero-layers{grid-template-columns:1fr;gap:0.6rem;padding:0.8rem}
  .hero-card{margin-top:1rem}
  .mini-title{font-size:1.6rem}
  /* Move the player lower on narrow viewports so it doesn't crowd hero content */
  .player-placeholder{margin-top:1.1rem}
  .player-actions{margin-top:0.8rem}
  /* When stacked, remove the heavy visual treatment so the player reads as part of the flow */
  .player-ui.minimal, .player-placeholder{background:transparent;border:0;box-shadow:none}
  .player-placeholder{border-radius:6px;padding:0}
  /* Subtle divider between hero and player when stacked */
  .player-placeholder::before{
    content: "";
    display:block;
    height:1px;
    width:100%;
    margin-bottom:0.6rem;
    border-radius:1px;
    background: linear-gradient(90deg, rgba(255,255,255,0.14), rgba(255,255,255,0.02));
    pointer-events:none;
  }
}

/* Make the hero taller on narrow/mobile screens for a stronger visual presence */
@media (max-width:720px) {
  .hero-visual {
    height:62vh;
    min-height:420px; /* help keep visual impact on taller phones */
  }
  /* keep the hero-card spaced comfortably below the larger hero */
  .hero-visual + .hero-card { margin-top:2.5rem; }
}

@media (max-width:900px) {
  .hero { display: none !important; }
  /* Mobile hero: keep Dunbar orange but tone it down with layered overlays */
  .hero-mobile {
    display: block;
    padding: 1rem 0;
    background-color: #ff7a2d;
    /* overlay a subtle dark gradient to soften the orange and improve contrast */
    background-image: linear-gradient(180deg, rgba(0,0,0,0.12), rgba(0,0,0,0.06)),
                      repeating-linear-gradient(135deg, rgba(255,255,255,0.02) 0 6px, transparent 6px 12px);
    background-blend-mode: overlay, normal;
    color: #fff;
    box-shadow: inset 0 -8px 24px rgba(0,0,0,0.12);
    border-bottom: 1px solid rgba(0,0,0,0.08);
  }

  /* Ensure mobile hero respects the fixed header spacing */
  .hero-mobile{ margin-top: calc(var(--header-height,72px) + 8px); }
  .hero-mobile .mobile-hero-inner h2{color:#fff}
  .hero-mobile .container{display:block}
  .hero-mobile .mini-sub{color:rgba(255,255,255,0.96)}
  .hero-mobile .tahoe-btn{background:rgba(0,0,0,0.16);color:#fff;border:1px solid rgba(255,255,255,0.06)}
  .hero-visual + .hero-card { margin-top:3rem; }
}

/* Tablet: subtle stripes and lower contrast between 601px and 900px */
@media (min-width:601px) and (max-width:900px) {
  .hero-mobile {
    /* reduce stripe opacity and increase spacing for a gentler texture on tablets */
    background-image: linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.04)),
                      repeating-linear-gradient(135deg, rgba(255,255,255,0.01) 0 10px, transparent 10px 20px);
    background-blend-mode: overlay, normal;
    box-shadow: inset 0 -6px 18px rgba(0,0,0,0.09);
  }
}

/* Theme-adaptive divider for light theme */
:root:not(.theme-dark) .player-placeholder::before{
  background: linear-gradient(90deg, rgba(2,6,23,0.08), rgba(2,6,23,0.02));
}

@media(max-width:900px){
  /* Extra breathing room on small screens up to 900px */
  .player-placeholder{margin-top:1.4rem}
  .player-actions{margin-top:1rem}
  /* Reduce player button size slightly to fit tighter screens */
  .player-btn.minimal{width:40px;height:40px}
}

/* tuck the hero visually into the document so the about card overlaps slightly for a cohesive feel */
.hero-visual{position:relative}
.hero-visual + .hero-card{margin-top:10vh}

/* (duplicated block removed) */
/* Minimal Tahoe-inspired player styles */
.player-placeholder{display:flex;flex-direction:column;align-items:stretch;padding:0.6rem;background:transparent;border-radius:10px}
.player-ui.minimal{display:flex;align-items:center;gap:0.75rem;padding:0.45rem 0.6rem;border-radius:10px;background:rgba(255,255,255,0.06);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.06);color:var(--text);}
.player-btn.minimal{width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,0.06);background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));display:inline-grid;place-items:center;font-weight:700;color:var(--text);cursor:pointer}
.player-btn.minimal[aria-pressed="true"]{background:linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.04));box-shadow:0 6px 20px rgba(2,6,23,0.12)}
.track-info{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.now-playing{font-weight:700;font-size:0.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);opacity:0.95}
.track-info .time{font-size:0.82rem;color:var(--muted);opacity:0.95}
.controls-right{display:flex;align-items:center;gap:0.5rem}

/* Slim progress bar */
.progress{width:220px;height:6px;background:rgba(255,255,255,0.03);border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,0.03);position:relative}
.progress::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--progress,0%);background:linear-gradient(90deg, rgba(255,255,255,0.16), rgba(255,255,255,0.06));transition:width 260ms linear;pointer-events:none}

/* Volume UI removed: related styles deleted */

/* Play button micro-interactions */
.player-btn.minimal{transition:transform 160ms cubic-bezier(.2,.9,.2,1), box-shadow 160ms cubic-bezier(.2,.9,.2,1)}
.player-btn.minimal:hover{transform:translateY(-3px)}

/* Ensure controls sit above decorative progress visuals */
.progress{z-index:0}
.player-ui.minimal, .player-ui.minimal *{position:relative;z-index:2}

/* Player action buttons placed below the player controls */
.player-actions{display:flex;gap:0.5rem;align-items:center}
/* Spread buttons evenly; allow them to grow but cap width so they remain pill-like */
.player-actions .tahoe-btn{flex:1 1 0;max-width:220px;min-width:88px}
.tahoe-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.5rem 0.85rem;border-radius:10px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.06);color:var(--text);text-decoration:none;font-weight:700;backdrop-filter:blur(6px);transition:transform 160ms var(--easing), box-shadow 160ms var(--easing)}
.tahoe-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(2,6,23,0.12)}
.tahoe-btn:active{transform:translateY(-1px)}
.tahoe-btn:focus{outline:3px solid rgba(255,255,255,0.08);outline-offset:3px}



@media(max-width:720px){
  .player-ui.minimal{flex-direction:row;gap:0.5rem}
  .progress{width:140px}
  .volume-popover{left:0;right:auto;min-width:140px}
}

/* Mobile-only hero: hide desktop hero and show a compact mobile hero */
@media (max-width:900px) {
  .hero { display: none !important; }
  .hero-mobile { display: block; padding: 1rem 0; background-color:#ff7a2d; color:#fff }
  .hero-mobile .mobile-hero-inner { align-items: center; }
  .hero-mobile .tahoe-btn { padding: 0.6rem 0.9rem; border-radius:10px; background:rgba(0,0,0,0.14); color:#fff }
}

/* Desktop: hide the mobile hero entirely */
@media (min-width:901px) {
  .hero-mobile { display:none; }
}

/* Make the hero title and tiger mark more attention-grabbing */
/* tiger mark removed: keep a neutral rule in case markup is reintroduced */
.tiger-mark{display:none}

/* Ensure the brand panel sits above decorative backgrounds */
.hero-visual .hero-layers{z-index:2}

/* Entrance animation */
/* Animate only when user allows motion (otherwise keep visible) */
@media (prefers-reduced-motion: no-preference){
  .hero-visual .hero-layers{opacity:0;transform:translateY(18px);animation:hero-enter 700ms cubic-bezier(.2,.9,.2,1) 120ms forwards}
  @keyframes hero-enter{to{opacity:1;transform:none}}
}

/* subtle stripe motion to give life */
.hero-visual .hero-layers:after{animation:stripe-move 8s linear infinite}
@keyframes stripe-move{0%{background-position:0 0}50%{background-position:60px 40px}100%{background-position:0 0}}

/* tiger mark hover nudge removed */

@media(min-width:1100px){
  .hero-visual .hero-layers{grid-template-columns:1fr 420px;align-items:center}
  .hero-visual .brand-mini{width:100%;align-items:flex-start;padding-left:2rem}
  .player-placeholder{height:140px}
}

@media(max-width:900px){
  .hero-visual{height:auto;margin-top:0;padding:1rem 0}
  .hero-visual .hero-layers{padding:1rem;grid-template-columns:1fr}
  .hero-visual .brand-mini{width:100%;align-items:center;padding:0.8rem}
  .mini-title{font-size:1.8rem}
  .player-placeholder{height:72px}
}
.muted{color:var(--muted)}
.cta-row{margin-top:1.25rem;display:flex;gap:0.75rem}
.btn{display:inline-flex;align-items:center;gap:0.6rem;padding:0.7rem 1rem;border-radius:12px;text-decoration:none;border:1px solid transparent;font-weight:700;cursor:pointer;transition:transform 240ms var(--easing), box-shadow 240ms var(--easing)}
.btn-primary{
  background: linear-gradient(180deg, rgba(255,122,45,0.92), rgba(255,122,45,0.85));
  color: #fff;
  box-shadow: 0 10px 28px rgba(255,122,45,0.14);
  border-radius: 999px; /* pill */
  padding: 0.65rem 1.1rem;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.08);
  transition: transform 220ms var(--easing), box-shadow 220ms var(--easing), background 220ms var(--easing);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(255,122,45,0.16)}
.btn-primary:active{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,0.12)}
.btn-primary:focus{outline:3px solid rgba(255,122,45,0.18);outline-offset:3px}

/* Listen button variant (different color) */
.btn-listen{
  /* Use the same sizing/feel as other .btn controls */
  display:inline-flex;align-items:center;gap:0.6rem;padding:0.7rem 1rem;border-radius:12px;text-decoration:none;border:1px solid rgba(0,0,0,0.12);font-weight:700;cursor:pointer;position:relative;overflow:visible;background:linear-gradient(180deg, rgba(27,122,74,0.95), rgba(27,122,74,0.85));color:#fff;transition:transform 220ms var(--easing), box-shadow 220ms var(--easing), filter 220ms var(--easing);
}

/* Hover animation: subtle scale + glowing ring via pseudo-element */
.btn-listen::after{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0.85);width:calc(100% + 14px);height:calc(100% + 14px);border-radius:16px;background:radial-gradient(circle at 50% 20%, rgba(255,255,255,0.12), transparent 30%);opacity:0;pointer-events:none;transition:opacity 220ms ease, transform 300ms cubic-bezier(.2,.9,.2,1);
}
.btn-listen:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 40px rgba(27,122,74,0.16);filter:brightness(1.03)}
.btn-listen:hover::after{opacity:1;transform:translate(-50%,-50%) scale(1)}
.btn-listen:focus{outline:3px solid rgba(27,122,74,0.18);outline-offset:3px}

/* Slightly different treatment in dark theme to keep contrast */
:root.theme-dark .btn-primary{background: linear-gradient(180deg, rgba(255,122,45,0.95), rgba(255,122,45,0.88)); border:1px solid rgba(0,0,0,0.2)}
.btn-outline{background:transparent;border:1px solid rgba(255,255,255,0.08);color:var(--text)}

/* Content */
.content{padding:2.25rem 0}
/* Larger section headers for stronger hierarchy */
.container.content h3{font-size:1.6rem}

/* Slightly larger brand title in the header */
.brand h1{font-size:1.4rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:0.75rem}
@media(max-width:980px){
  .cards{grid-template-columns:repeat(2,1fr)}
}

/* Keep the hamburger fixed to the top-right on very small screens so it's not pushed down */
@media(max-width:720px){
  .header-inner{position:relative}
  .nav-toggle{position:absolute;right:12px;top:10px;z-index:350;display:inline-flex;padding:0.45rem;border-radius:6px}
  .nav-toggle .hamburger{width:14px;height:2px}
  .nav-toggle:focus{outline:3px solid rgba(0,0,0,0.08);outline-offset:2px}
  /* ensure brand doesn't overlap the toggle */
  .brand{padding-right:3.2rem}
}

@media(max-width:720px){
  .site-header{ --header-height:56px; }
  main{ padding-top:var(--header-height); }
}
@media(max-width:560px){
  .cards{grid-template-columns:1fr}
}
.card{padding:0.9rem;border-radius:10px;background:var(--panel);box-shadow:var(--shadow-1);border:1px solid rgba(255,255,255,0.04);transition:transform 200ms var(--easing)}
.card:hover{transform:translateY(-4px)}

/* Wide card: span all columns (Sports) */
.card--wide{grid-column:1 / -1}
@media(max-width:860px){.card--wide{grid-column:auto}}

/* Support (Advertise + Donate) styles */
.support-grid{display:flex;flex-direction:column;gap:1rem}
.support-grid .vertical-cards{display:flex;flex-direction:column;gap:0.85rem}
.support-grid .plan{display:flex;flex-direction:column;gap:0.6rem;padding:0.95rem;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border:1px solid rgba(255,255,255,0.04);box-shadow:var(--shadow-1);transition:transform 360ms var(--easing), box-shadow 360ms var(--easing), filter 360ms var(--easing)}
.support-grid .plan:focus{outline:3px solid rgba(255,255,255,0.06);outline-offset:4px}

/* Contact column divider */
.contact-divider{border:0;height:1px;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.06), transparent);margin:0.5rem 0}

/* Tier badges */
.tier-badge{font-weight:900;font-size:0.78rem;color:var(--text);background:rgba(0,0,0,0.06);padding:0.28rem 0.6rem;border-radius:999px;display:inline-block}
.plan .price{font-weight:900;font-size:1.05rem;margin-top:0.1rem}
.plan h5{margin:0;font-size:1.02rem}

/* Visual weight: higher tiers look 'taller' and more premium */
.tier-bronze{border-left:4px solid #b06b2f}
.tier-silver{border-left:4px solid #9aa7b3}
.tier-gold{border-left:6px solid #ffd27a;transform-origin:center;}

/* Hover/Focus animations: lift + sheen + glow for premium tiers */
.support-grid .plan:hover, .support-grid .plan:focus{
  transform:translateY(-8px) scale(1.01);
  box-shadow:0 30px 60px rgba(2,6,23,0.18);
}

/* Sheen effect: pseudo-element slides across on hover */
.support-grid .plan{position:relative;overflow:hidden}
.support-grid .plan::before{content:'';position:absolute;left:-40%;top:-50%;width:140%;height:200%;transform:rotate(18deg) translateX(-20%);background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.14) 40%, rgba(255,255,255,0.02));opacity:0;transition:transform 650ms var(--easing), opacity 360ms ease}
.support-grid .plan:hover::before, .support-grid .plan:focus::before{transform:rotate(18deg) translateX(20%);opacity:1}

/* Premium glow for Gold */
.tier-gold:hover{filter:brightness(1.03)}
.tier-gold:hover::after{content:'';position:absolute;inset:-6px;border-radius:14px;box-shadow:0 20px 60px rgba(255,210,120,0.12);pointer-events:none}

/* CTA alignment inside cards */
.card-cta{margin-top:0.35rem}
.donate-card .card{padding:1rem;border-radius:12px}

/* Responsive: ensure large viewports still use single-column stack (we intentionally stack vertically) */
@media(min-width:1000px){
  /* keep the vertical stack but allow a centered max width for wide screens */
  .support-grid{max-width:920px;margin-left:auto;margin-right:auto}
}

/* Full-width support area placed under the section heading */
.support-full{width:100%;padding:0.25rem 0;background:transparent;margin-top:0.2rem}
.support-full .support-grid{background:transparent;padding:0 0.6rem}
/* Make support cards match site card width behavior: remove narrow centering */
.support-full .card{max-width:100%;margin:0;padding:0}

/* Experience-cards container: replace inline layout styles */
.support-experience-container{max-width:var(--max-width);margin:0 auto;padding:0.35rem 1.25rem;display:flex;flex-direction:column;gap:0.4rem}

/* stacked experience cards spacing */
.experience-cards{display:flex;flex-direction:column;gap:0.75rem}

.experience-card{margin:0.25rem 0}

.experience-card{background:var(--panel);border-radius:12px;padding:0.9rem;border:1px solid rgba(0,0,0,0.04);box-shadow:var(--shadow-1);transition:transform 300ms var(--easing), box-shadow 300ms var(--easing);display:flex;flex-direction:column;gap:0.6rem;width:100%}
.experience-card:focus{outline:3px solid rgba(255,255,255,0.06);outline-offset:6px}
.experience-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px rgba(2,6,23,0.16)}

/* Sponsor tier grid (Bronze / Silver / Gold) */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin-top:0.25rem}
@media(max-width:980px){.tier-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.tier-grid{grid-template-columns:1fr}}

/* Support header row and CTA styles (replace inline styles in markup) */
.support-eyebrow-row{display:flex;gap:0.5rem;align-items:center;flex-wrap:wrap;margin-bottom:0.4rem}
.support-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.support-ctas{margin-left:auto;display:flex;gap:0.5rem}
@media(max-width:600px){
  .support-header-row{flex-direction:column;align-items:flex-start}
  .support-ctas{width:100%;justify-content:flex-start}

/* Scroll reveal removed per user request */
}

.support-eyebrow-row{margin-bottom:0}
/* Tighten eyebrow and header spacing for Support section */
#support .support-eyebrow-row .eyebrow{margin-bottom:0}
#support .support-header-row h3{margin-top:0}
#support .support-header-row{margin-top:-0.15rem}


.experience-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}
.experience-card .badge{font-weight:900;background:linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));padding:0.3rem 0.6rem;border-radius:999px;font-size:0.86rem}
.experience-card h4{margin:0;font-size:1.02rem}
.experience-card .card-body{display:block;color:var(--muted)}
.experience-card .card-body ul{margin:0.45rem 0 0 1.05rem;padding:0.2rem 0}
.experience-card .card-body li{margin:0.25rem 0;font-size:0.97rem}
.experience-card .card-foot{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}
.experience-card .actions{display:flex;gap:0.5rem}

/* Tier accents */
.experience-card.tier-bronze .badge{background:#f3e7de;color:#5a3b22;border:1px solid rgba(0,0,0,0.04)}
.experience-card.tier-silver .badge{background:#eef2f6;color:#364147;border:1px solid rgba(0,0,0,0.04)}
.experience-card.tier-gold .badge{background:linear-gradient(90deg,#fff6e6,#fff2d0);color:#7a5a16;border:1px solid rgba(0,0,0,0.06)}
.experience-card.donate .badge{background:linear-gradient(90deg, rgba(255,122,45,0.12), rgba(27,122,74,0.06));color:var(--text);border:1px solid rgba(255,122,45,0.06)}

/* Compact layout on small screens */
@media(max-width:720px){
  .experience-card .card-head{flex-direction:row;align-items:center}
  .experience-card .card-foot{flex-direction:column;align-items:flex-start;gap:0.5rem}
}
.schedule dl{display:grid;grid-template-columns:160px 1fr;gap:0.5rem 1rem;padding:0;margin:0}
.schedule dt{font-weight:700;color:var(--accent-green)}
.schedule dd{margin:0;color:var(--muted)}
.theme-status-wrap{display:none}
.theme-status{display:none}
.theme-reset{display:none}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0.6rem;margin-top:0.6rem}
blockquote{font-style:italic;color:var(--muted);border-left:4px solid var(--accent-orange);padding:0.75rem 1rem;background:var(--panel);border-radius:10px}
.listen-links{display:flex;gap:0.6rem;flex-wrap:wrap;margin-top:0.6rem}
.listen-links .btn{min-width:180px}
.press-list{margin-top:0.5rem}
.press-list a{color:var(--accent-green);text-decoration:underline}
.rates{margin-top:0.5rem}
.address{background:linear-gradient(180deg, rgba(255,122,45,0.04), rgba(255,255,255,0.02));padding:0.9rem;border-radius:10px;border-left:4px solid var(--accent-orange);display:inline-block}

/* Footer */
.site-footer{background:transparent;padding:1.1rem 0;color:var(--muted);border-top:1px solid rgba(255,255,255,0.03)}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem}

/* Developer credit (subtle) */
.site-credit{font-size:0.82rem;color:var(--muted);opacity:0.9;margin:0}
.site-credit a{color:inherit;text-decoration:underline;opacity:0.85}

/* Top-of-site credit: subtle and hidden on narrow viewports */
.hero-visual{position:relative}
.site-credit--top{position:absolute;right:2.25rem;top:1.15rem;font-size:0.78rem;opacity:0.95;margin:0;padding:0.15rem 0;color:#fff}
.site-credit--top a{color:inherit;text-decoration:underline}
@media(max-width:720px){.site-credit--top{display:none}}

/* Responsive */
@media(max-width:980px){
  .cards{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .header-inner{flex-direction:column;align-items:flex-start;gap:0.6rem}
  .cards{grid-template-columns:1fr}
  .logo{width:56px;height:56px}
  .lead{font-size:1rem}
}

/* Prevent the large 75vh gap from breaking small screens */
@media(max-width:900px){
  .hero-card{margin-top:3rem}
}
@media(max-width:480px){
  .hero-card{margin-top:1.5rem}
}

/* Motion reduce support */
@media(prefers-reduced-motion:reduce){
  .card, .nav a, .btn{transition:none}
}

/* Utility */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Mini audio popup */
.mini-audio-btn{background:transparent;border:0;font-size:1.25rem;cursor:pointer;color:var(--text);padding:0.35rem;border-radius:8px}
.mini-audio-popup{position:fixed;right:20px;bottom:20px;z-index:300;min-width:300px;max-width:420px;background:var(--panel);padding:0.8rem;border-radius:12px;box-shadow:0 14px 40px rgba(2,6,23,0.24);display:none}
.mini-audio-popup[aria-hidden="false"]{display:block}
.mini-close{position:absolute;right:8px;top:8px;border:0;background:transparent;font-size:1rem;cursor:pointer}
.mini-audio-content{display:flex;flex-direction:column;gap:0.5rem}
.mini-audio-popup .btn{align-self:flex-start}

@media(max-width:720px){
  .mini-audio-popup{left:12px;right:12px;bottom:12px;min-width:auto}
}

/* Additional responsive improvements added to make the site adapt across devices */
/* Ensure all raster/vector media scale inside their containers */
img, picture, video, svg { max-width:100%; height:auto; display:block; }

/* Use more fluid typography for hero and titles */
.hero h2, .hero-card h2 { font-size: clamp(1.4rem, 5vw, 2.6rem); }
.mini-title { font-size: clamp(1.6rem, 6.5vw, 3.8rem); }
.brand h1 { font-size: clamp(1rem, 2.6vw, 1.4rem); }

/* Make .cards grid more resilient using auto-fit */
.cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Ensure container padding reduces on smaller viewports for better use of space */
.container { padding-left: clamp(0.6rem, 3vw, 1.25rem); padding-right: clamp(0.6rem, 3vw, 1.25rem); }

/* Header adjustments: keep logo and brand compact on narrow screens */
.logo { width: auto; height: auto; max-height:64px; max-width:64px; }
@media(max-width:720px){
  .logo{max-width:56px;max-height:56px}
  .header-inner{padding:0.6rem 0}
}

/* Make footer stack nicely on small screens */
@media(max-width:720px){
  .footer-inner { flex-direction:column; align-items:flex-start; gap:0.5rem; }
  .footer-inner p{margin:0.25rem 0}
}

/* Reduce heavy hero visual height for very short screens */
@media(max-height:600px){
  .hero-visual { height:38vh; }
  .hero-card{margin-top:2.5rem}
}

/* Improve week-grid behavior on narrow screens: stack days vertically for readability */
@media(max-width:860px){
  .week-grid .week-head, .week-grid .week-body{grid-template-columns:1fr}
  .week-grid .day{min-height:auto;padding:0.6rem}
}

/* Make contact grid adapt more gracefully */
@media(max-width:980px){
  .contact-grid{grid-template-columns:1fr;gap:0.9rem}
}

/* Ensure player controls are flexible and shrink appropriately */
.player-ui.minimal { gap: 0.5rem; align-items:center; }
.progress{max-width:100%; width:220px; min-width:80px}
@media(max-width:420px){
  .player-ui.minimal{flex-wrap:wrap}
  .track-info{min-width:0}
  .progress{width:140px}
}

/* Small accessibility tweak: increase hit area for nav links on touch devices */
@media (pointer: coarse){
  .nav a, .nav-toggle, .btn{padding:0.8rem 1rem}
}

