:root {
  --bg: #08070a;
  --bg-soft: #100c12;
  --ink: #f6f2ec;
  --muted: #b8adb7;
  --red: #a21630;
  --red-bright: #df2947;
  --blue: #123d77;
  --blue-bright: #2764b5;
  --gold: #d89a3f;
  --gold-bright: #f2bd68;
  --line: rgba(255,255,255,.12);
  --max: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }

.noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  z-index: 20;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 86px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 30px;
  padding: 0 clamp(24px, 4vw, 64px);
  z-index: 50;
  transition: background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
  border-bottom: 1px solid transparent;
}
.site-header.scrolled {
  background: rgba(8,7,10,.78);
  backdrop-filter: blur(18px);
  border-color: rgba(255,255,255,.08);
}
.brand {
  justify-self: start;
  line-height: .86;
  letter-spacing: .08em;
}
.brand-main { display: block; font-weight: 800; font-size: 1rem; }
.brand-sub { display: block; margin-top: 6px; font-size: .58rem; letter-spacing: .26em; color: var(--gold-bright); }
.desktop-nav { display: flex; gap: 28px; font-size: .86rem; color: rgba(255,255,255,.78); }
.desktop-nav a { transition: color .2s ease; }
.desktop-nav a:hover { color: #fff; }
.nav-cta {
  justify-self: end;
  padding: 11px 18px;
  border: 1px solid rgba(242,189,104,.55);
  color: var(--gold-bright);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 700;
  transition: background .2s ease, color .2s ease;
}
.nav-cta:hover { background: var(--gold-bright); color: #15100a; }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; }
.menu-toggle span { display:block; width:24px; height:1px; background:#fff; margin:6px 0; transition:.25s ease; }
.mobile-menu { display:none; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 130px 24px 80px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.035), transparent 38%),
    linear-gradient(180deg, #08070a 0%, #09070b 78%, #0d0910 100%);
}
.hero-glow { position:absolute; width:65vw; height:65vw; filter: blur(90px); opacity:.34; border-radius:50%; }
.hero-glow-red { left:-25vw; top:12vh; background:radial-gradient(circle, rgba(210,29,58,.72), transparent 62%); }
.hero-glow-blue { right:-27vw; bottom:-10vw; background:radial-gradient(circle, rgba(29,84,172,.75), transparent 62%); }
.hero-lines {
  position:absolute;
  width:140%;
  height:100%;
  top:0;
  left:-20%;
  opacity:.16;
  background:
    linear-gradient(108deg, transparent 0 36%, rgba(255,255,255,.28) 36.1% 36.25%, transparent 36.35% 100%),
    linear-gradient(72deg, transparent 0 60%, rgba(216,154,63,.26) 60.1% 60.2%, transparent 60.3% 100%),
    linear-gradient(96deg, transparent 0 47%, rgba(39,100,181,.25) 47.1% 47.25%, transparent 47.35% 100%);
  transform: rotate(-2deg);
}
.hero-content { position:relative; max-width:1100px; width:100%; text-align:center; z-index:2; }
.eyebrow,
.section-kicker {
  margin:0 0 24px;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-weight:700;
  font-size:.72rem;
  color:var(--gold-bright);
}
.hero h1 { margin: 0; }
.hero h1 span {
  display:block;
  font-size:clamp(4.2rem, 13vw, 10rem);
  line-height:.78;
  letter-spacing:-.045em;
  font-weight:800;
}
.hero h1 em {
  display:block;
  margin-top:20px;
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(2.2rem, 5.5vw, 4.9rem);
  font-weight:600;
  line-height:.95;
  color:#f5d4d8;
}
.hero-tagline { max-width:700px; margin:38px auto 0; font-family:"Playfair Display", Georgia, serif; font-size:clamp(1.25rem, 2vw, 1.75rem); color:rgba(255,255,255,.9); }
.hero-actions { margin-top:42px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 24px; border:1px solid var(--line); text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:700; transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background:#f3eee7; color:#130f13; border-color:#f3eee7; }
.button-secondary { background:rgba(255,255,255,.04); backdrop-filter:blur(8px); }
.button-secondary:hover { border-color:rgba(255,255,255,.38); }
.button-gold { background:var(--gold-bright); color:#171008; border-color:var(--gold-bright); }
.scroll-cue { position:absolute; bottom:28px; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.48); text-transform:uppercase; letter-spacing:.16em; font-size:.58rem; }
.scroll-cue span { width:1px; height:38px; background:linear-gradient(180deg,transparent,#fff); animation:scrollpulse 2s infinite; }
@keyframes scrollpulse { 0%,100%{opacity:.25;transform:scaleY(.7)} 50%{opacity:1;transform:scaleY(1)} }

.section { position:relative; padding:clamp(90px, 11vw, 160px) clamp(24px, 6vw, 84px); }
.section-grid { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:220px 1fr; gap:clamp(30px, 7vw, 110px); }
.section-grid.compact { padding-top:20px; }
.section-copy { max-width:850px; }
.section-copy h2,
.section-heading h2,
.strasbourg-content h2,
.auditions-card h2 {
  margin:0;
  font-size:clamp(2.8rem, 6vw, 6rem);
  line-height:.92;
  letter-spacing:-.04em;
}
.section-copy h2 em,
.section-heading h2 em,
.strasbourg-content h2 em,
.auditions-card h2 em { font-family:"Playfair Display", Georgia, serif; font-weight:600; }
.lead { font-size:clamp(1.2rem, 2vw, 1.65rem); line-height:1.42; color:#f0e7ed; }
.section-copy p:not(.lead), .strasbourg-content p, .auditions-copy p { color:var(--muted); line-height:1.75; font-size:1rem; }

.section-project { background:linear-gradient(180deg,#0d0910 0%,#110b12 100%); }
.architecture-card {
  position:relative;
  max-width:var(--max);
  min-height:390px;
  margin:90px auto 0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  background:
    linear-gradient(135deg, rgba(166,22,48,.2), transparent 38%),
    linear-gradient(315deg, rgba(39,100,181,.18), transparent 36%),
    #0b090d;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:38px;
}
.architecture-card span { color:var(--gold-bright); font-size:.72rem; letter-spacing:.25em; font-weight:700; }
.architecture-card strong { margin-top:9px; font-size:clamp(1.7rem,4vw,3.2rem); }
.architecture-card small { color:rgba(255,255,255,.42); margin-top:8px; }
.arch-lines { position:absolute; inset:0; opacity:.35; background:repeating-linear-gradient(90deg,transparent 0 8%,rgba(255,255,255,.06) 8.05% 8.2%), repeating-linear-gradient(0deg,transparent 0 16%,rgba(255,255,255,.05) 16.05% 16.2%); mask-image:linear-gradient(to bottom,transparent 8%,#000 50%,#000 100%); }

.section-concert { background:#09070b; padding-left:0; padding-right:0; }
.section-heading { max-width:var(--max); margin:0 auto; padding:0 clamp(24px,6vw,84px); }
.stats-grid { max-width:var(--max); margin:70px auto 100px; padding:0 clamp(24px,6vw,84px); display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat { padding:38px 26px 36px 0; border-right:1px solid var(--line); min-height:160px; }
.stat:last-child { border-right:0; padding-left:26px; }
.stat:not(:first-child) { padding-left:26px; }
.stat strong { display:block; font-size:clamp(2.7rem,5vw,5rem); line-height:1; color:#fff; }
.stat span { display:block; margin-top:13px; color:var(--muted); font-size:.87rem; text-transform:uppercase; letter-spacing:.08em; line-height:1.5; }
.shows-marquee { overflow:hidden; border-top:1px solid rgba(216,154,63,.28); border-bottom:1px solid rgba(216,154,63,.28); background:#0d0910; }
.marquee-track { width:max-content; display:flex; align-items:center; gap:28px; padding:22px 0; animation:marquee 40s linear infinite; }
.marquee-track span { font-family:"Playfair Display",Georgia,serif; font-size:1.1rem; letter-spacing:.04em; }
.marquee-track i { color:var(--gold); font-style:normal; font-size:.6rem; }
@keyframes marquee { to { transform:translateX(-50%); } }

.section-strasbourg { min-height:88svh; display:flex; align-items:center; overflow:hidden; background:#0b080c; }
.strasbourg-backdrop { position:absolute; inset:0; background:radial-gradient(circle at 78% 45%, rgba(39,100,181,.4), transparent 24%), radial-gradient(circle at 70% 50%, rgba(223,41,71,.28), transparent 40%), linear-gradient(115deg, rgba(255,255,255,.035) 0 1px, transparent 1px 13%); opacity:.9; }
.strasbourg-content { position:relative; z-index:2; max-width:760px; margin-left:max(0px, calc((100vw - var(--max))/2)); }
.strasbourg-content h2 { font-size:clamp(3.5rem,8vw,8rem); }
.strasbourg-content p:last-child { max-width:650px; margin-top:32px; font-size:1.08rem; }

.section-auditions { overflow:hidden; background:linear-gradient(180deg,#0b080c,#0a0709); }
.audition-orb { position:absolute; border-radius:50%; filter:blur(90px); opacity:.25; }
.audition-orb-red { width:600px;height:600px;left:-220px;top:0;background:var(--red-bright); }
.audition-orb-blue { width:500px;height:500px;right:-160px;bottom:-150px;background:var(--blue-bright); }
.auditions-card { position:relative; z-index:2; max-width:var(--max); margin:0 auto; border:1px solid rgba(216,154,63,.3); background:rgba(15,10,15,.78); backdrop-filter:blur(12px); padding:clamp(34px,5vw,70px); display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.auditions-card h2 em { color:var(--gold-bright); font-style:normal; }
.gold { color:var(--gold-bright); }
.deadline { margin:28px 0; color:#fff !important; }
.deadline strong { color:var(--gold-bright); }

.section-aca { background:#0f0b10; border-top:1px solid rgba(255,255,255,.06); }
.site-footer { padding:60px clamp(24px,6vw,84px); display:flex; justify-content:space-between; gap:40px; border-top:1px solid var(--line); background:#060507; }
.footer-brand span { display:block; font-size:1.2rem; font-weight:800; letter-spacing:.08em; }
.footer-brand small { display:block; margin-top:7px; color:var(--gold-bright); letter-spacing:.22em; font-size:.62rem; }
.footer-meta { text-align:right; color:var(--muted); font-size:.82rem; }
.footer-links { display:flex; justify-content:flex-end; gap:20px; margin-top:14px; color:#fff; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .75s ease, transform .75s cubic-bezier(.2,.75,.2,1); }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 900px) {
  .site-header { grid-template-columns:1fr auto; height:74px; }
  .desktop-nav, .nav-cta { display:none; }
  .menu-toggle { display:block; justify-self:end; }
  .mobile-menu { position:fixed; inset:0; z-index:45; background:rgba(8,7,10,.98); display:grid; place-items:center; opacity:0; pointer-events:none; transition:opacity .25s ease; }
  .mobile-menu.open { opacity:1; pointer-events:auto; }
  .mobile-menu nav { display:flex; flex-direction:column; gap:24px; text-align:center; font-size:1.5rem; }
  .mobile-cta { margin-top:10px; color:var(--gold-bright); font-size:1rem; text-transform:uppercase; letter-spacing:.12em; }
  .menu-toggle.open span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle.open span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .section-grid { grid-template-columns:1fr; gap:15px; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat:nth-child(2) { border-right:0; }
  .stat:nth-child(3), .stat:nth-child(4) { border-top:1px solid var(--line); }
  .auditions-card { grid-template-columns:1fr; gap:35px; }
  .strasbourg-content { margin-left:0; }
}

@media (max-width: 620px) {
  .hero { padding-left:20px; padding-right:20px; }
  .hero h1 span { font-size:clamp(3.7rem,19vw,6rem); }
  .hero h1 em { margin-top:14px; }
  .hero-tagline { font-size:1.15rem; }
  .hero-actions { flex-direction:column; align-items:stretch; max-width:340px; margin-left:auto; margin-right:auto; }
  .button { width:100%; }
  .section { padding-left:20px; padding-right:20px; }
  .section-heading, .stats-grid { padding-left:20px; padding-right:20px; }
  .stats-grid { grid-template-columns:1fr; }
  .stat, .stat:not(:first-child), .stat:last-child { border-right:0; border-top:1px solid var(--line); padding:28px 0; min-height:0; }
  .stat:first-child { border-top:0; }
  .architecture-card { margin-top:55px; padding:24px; min-height:300px; }
  .auditions-card { padding:30px 22px; }
  .site-footer { flex-direction:column; }
  .footer-meta { text-align:left; }
  .footer-links { justify-content:flex-start; flex-wrap:wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
