/* Base Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Inter","Noto Serif SC",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;line-height:1.6;color:#1d1f21;background:#fafafa;-webkit-font-smoothing:antialiased;}
:root{
  --accent:#b41e32;
  --accent-rgb:180,30,50;
  --bg:#fafafa;
  --bg-alt:#ffffff;
  --bg-soft:#f2f4f5;
  --text:#1d1f21;
  --text-soft:#444;
  --border:#e2e5e8;
  --radius:14px;
  --shadow:0 2px 4px rgba(0,0,0,.06),0 4px 16px -4px rgba(0,0,0,.08);
}
body.dark{
  --bg:#121416;
  --bg-alt:#1c1f22;
  --bg-soft:#22262a;
  --text:#e9ecef;
  --text-soft:#c5c9ce;
  --border:#343a40;
  --shadow:0 2px 4px rgba(0,0,0,.5),0 4px 18px -4px rgba(0,0,0,.6);
  background:var(--bg);color:var(--text);
}

.site-header{position:sticky;top:0;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem clamp(1rem,3vw,3rem);background:rgba(var(--accent-rgb),.08);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border);}
.logo-title h1{font-size:1.25rem;letter-spacing:.5px;font-weight:700;color:var(--accent);}
.logo-title .tagline{font-size:.8rem;color:var(--text-soft);margin-top:.25rem;}

.main-nav{position:relative;}
.main-nav ul{display:flex;list-style:none;gap:.75rem;align-items:center;}
.main-nav a, .main-nav button.theme-toggle{display:inline-flex;align-items:center;font-size:.85rem;font-weight:500;padding:.55rem .9rem;border-radius:999px;text-decoration:none;color:var(--text);border:1px solid transparent;transition:.25s background,.25s color,.25s border-color;cursor:pointer;background:var(--bg-alt);}
.main-nav a:hover,.main-nav a:focus-visible,.main-nav button.theme-toggle:hover{background:var(--accent);color:#fff;}
.nav-toggle{display:none;position:relative;background:var(--bg-alt);border:1px solid var(--border);padding:.55rem .9rem;border-radius:10px;cursor:pointer;}

@media (max-width:820px){
  .nav-toggle{display:inline-block;}
  .main-nav ul{position:absolute;right:0;top:120%;flex-direction:column;align-items:stretch;background:var(--bg-alt);padding:1rem;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:.3s;}
  .main-nav ul.open{opacity:1;visibility:visible;transform:translateY(0);}
  .main-nav a,.main-nav button.theme-toggle{width:100%;}
}

.section{padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,5vw,4rem);max-width:1200px;margin:0 auto;}
.section h2{font-size:1.9rem;margin-bottom:1.2rem;line-height:1.2;position:relative;}
.section h2::after{content:"";display:block;width:56px;height:4px;background:linear-gradient(90deg,var(--accent),#ff5b6c);border-radius:4px;margin-top:.6rem;}
.content-block p + p{margin-top:1rem;}
.content-block ul{margin:1rem 0 1rem 1.2rem;}
.content-block li{margin:.35rem 0;}
.event-meta{list-style:none;margin:1rem 0;padding:.9rem 1.1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);}
.event-meta li + li{margin-top:.4rem;}
.artist-bullets{columns:2;column-gap:2rem;list-style:disc;padding-left:1.2rem;}
@media (max-width:680px){.artist-bullets{columns:1;}}

/* Bilingual intro English block */
.intro-en{margin-top:2rem;padding:1.25rem 1.1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);}
.intro-en h3{margin:0 0 .75rem;font-size:1.15rem;letter-spacing:.5px;}
.intro-en p + p{margin-top:.75rem;}

.poster-figure{margin:0 auto 1.2rem;max-width:680px;display:flex;flex-direction:column;gap:.75rem;}
.poster-figure img{width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);object-fit:cover;}
.program-figure{margin:1rem auto 0;max-width:760px;display:flex;flex-direction:column;gap:.6rem;}
.program-figure img{width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--bg-alt);}
.program-figure figcaption{font-size:.8rem;color:var(--text-soft);}
.note{font-size:.85rem;color:var(--text-soft);margin-top:.75rem;}
.placeholder{opacity:.7;font-style:italic;}

.artist-list{display:grid;gap:1.1rem;}
.artist-list details{background:var(--bg-alt);border:1px solid var(--border);border-radius:16px;padding:1rem 1.1rem;box-shadow:var(--shadow);transition:.4s border-color,.4s background;}
.artist-list details[open]{border-color:var(--accent);}
.artist-list summary{cursor:pointer;font-weight:600;list-style:none;position:relative;padding-right:2rem;}
.artist-list summary::marker{display:none;}
.artist-list summary::-webkit-details-marker{display:none;}
.artist-list summary:after{content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-weight:400;transition:.3s;}
.artist-list details[open] summary:after{content:"−";}
.bio p + p{margin-top:.6rem;}
.bio{margin-top:.85rem;display:grid;gap:1rem;}
.bio.with-photo{grid-template-columns:140px 1fr;align-items:start;}
@media (max-width:640px){.bio.with-photo{grid-template-columns:1fr;}}
.artist-photo{width:140px;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);background:linear-gradient(135deg,var(--bg-soft),var(--bg-alt));display:block;}
.artist-photo.placeholder{display:flex;align-items:center;justify-content:center;font-size:.7rem;letter-spacing:.5px;color:var(--text-soft);text-align:center;padding:.5rem;}

.donation-list{list-style:disc;margin:1rem 0 0 1.2rem;}
.donation-list li + li{margin-top:.4rem;}

.downloads ul, .downloads li{list-style:none;margin:0;padding:0;}
.downloads ul{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;}
.downloads a{display:inline-block;padding:.7rem 1.1rem;border:1px solid var(--border);border-radius:999px;text-decoration:none;font-size:.85rem;font-weight:500;background:var(--bg-alt);color:var(--text);transition:.3s background,.3s color,.3s border-color;}
.downloads a:hover{background:var(--accent);color:#fff;border-color:var(--accent);}

.site-footer{padding:2.5rem 1rem;text-align:center;font-size:.8rem;color:var(--text-soft);background:var(--bg-alt);border-top:1px solid var(--border);margin-top:3rem;}
.back-to-top{display:inline-block;margin-top:.75rem;text-decoration:none;color:var(--accent);font-weight:600;}
.back-to-top:hover{text-decoration:underline;}

/* Floating back-to-top */
.floating-top{position:fixed;right:1rem;bottom:1rem;z-index:1200;padding:.7rem .9rem;border-radius:50%;border:1px solid var(--border);background:var(--bg-alt);color:var(--accent);cursor:pointer;box-shadow:var(--shadow);font-size:1rem;line-height:1;transition:.3s background,.3s color,.3s transform;}
.floating-top:hover{background:var(--accent);color:#fff;}
.floating-top[hidden]{display:none;}

/* (language toggle removed) */


/* Utilities */
img{max-width:100%;display:block;}
a{color:var(--accent);}a:hover{color:#ff2f47;}

/* Dark adjustments */
body.dark a{color:#ff6b80;}body.dark a:hover{color:#ffa3b0;}
body.dark .artist-list details{background:var(--bg-soft);}
body.dark .main-nav a, body.dark .main-nav button.theme-toggle{background:var(--bg-soft);}

/* Motion preference */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
