@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --night:#10222a; --cream:#f5efe4; --red:#b51c32; --gold:#edbe48; --white:#fff; --ink:#17262d; --muted:#607078; --line:#d9d0c1; --serif:"Fraunces", Georgia, serif; --sans:"Manrope", Arial, sans-serif; --mono:"DM Mono", monospace; --wide:1250px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font:16px/1.65 var(--sans); }
a { color:inherit; }
.wrap { width:min(var(--wide), calc(100% - 48px)); margin:auto; }
.hero { position:relative; isolation:isolate; min-height:100svh; overflow:hidden; color:var(--white); background:var(--night); }
.hero-image { position:absolute; z-index:-3; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% 53%; }
.hero::before { position:absolute; z-index:-2; inset:0; background:linear-gradient(180deg, rgba(8,20,26,.76) 0%, rgba(8,20,26,.08) 33%, rgba(8,20,26,.02) 52%, rgba(8,20,26,.86) 100%); content:""; }
.hero::after { position:absolute; z-index:-1; left:0; right:0; bottom:0; height:18px; background:var(--gold); content:""; }
.topbar { min-height:78px; border-bottom:1px solid rgba(255,255,255,.35); }
.topbar .wrap { display:flex; align-items:center; justify-content:space-between; min-height:78px; gap:30px; }
.brand { font:800 22px/1 var(--sans); letter-spacing:-.07em; text-decoration:none; }
.brand b { color:var(--gold); font-weight:800; }
.menu { display:flex; align-items:center; gap:27px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.menu a { text-decoration:none; }
.menu a:hover { color:var(--gold); }
.menu .menu-cta { padding:10px 15px; border:1px solid var(--gold); color:var(--gold); }
.mobile-crumbs { display:none; }
.hero-content { display:flex; min-height:calc(100svh - 78px); align-items:end; padding:64px 0 78px; }
.hero-copy { max-width:710px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 17px; color:var(--gold); font:500 11px/1.2 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.eyebrow::before { width:25px; height:2px; background:currentColor; content:""; }
h1,h2,h3,p { margin-top:0; }
h1 { margin:0 0 27px; font:700 clamp(42px,5.4vw,78px)/.97 var(--sans); letter-spacing:-.06em; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 21px; background:var(--gold); color:var(--ink); font-size:11px; font-weight:800; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; transition:background .2s,transform .2s; }
.button:hover { background:var(--white); transform:translateY(-2px); }
.photo-caption { position:absolute; right:max(24px,calc((100% - var(--wide))/2)); bottom:42px; max-width:215px; color:rgba(255,255,255,.8); font:400 10px/1.5 var(--mono); letter-spacing:.04em; text-align:right; }
.intro { padding:125px 0; }
.intro-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(50px,10vw,160px); }
.tag { margin:7px 0 0; color:var(--red); font:500 11px/1.2 var(--mono); letter-spacing:.13em; text-transform:uppercase; }
.intro h2,.dates h2 { max-width:750px; margin:0 0 23px; font:500 clamp(38px,5vw,65px)/1 var(--serif); letter-spacing:-.04em; }
.intro .lead { max-width:650px; color:var(--muted); font-size:18px; }
.acts { background:var(--white); }
.acts .wrap { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(45px,9vw,150px); padding:112px 0; }
.acts h2 { margin:12px 0 0; font:500 clamp(39px,5vw,62px)/1 var(--serif); letter-spacing:-.04em; }
.act-list { border-top:2px solid var(--night); }
.act { display:grid; grid-template-columns:55px 1fr; gap:20px; padding:21px 0; border-bottom:1px solid var(--line); }
.act b { color:var(--red); font:500 15px/1 var(--mono); }
.act h3 { margin:0 0 5px; font:600 22px/1.15 var(--sans); }
.act p { margin:0; color:var(--muted); font-size:14px; }
.dates { padding:112px 0; background:var(--night); color:var(--white); }
.dates-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(40px,9vw,145px); }
.dates .tag { color:var(--gold); }
.dates h2 { margin-top:12px; }
.dates p { max-width:370px; color:rgba(255,255,255,.74); }
.events { margin:0; padding:0; border-top:1px solid rgba(255,255,255,.5); list-style:none; }
.event { display:grid; grid-template-columns:96px 1fr; gap:22px; padding:19px 0; border-bottom:1px solid rgba(255,255,255,.25); }
.event time { color:var(--gold); font:500 16px/1.2 var(--mono); }
.event b { display:block; font-size:16px; }
.event span { display:block; margin-top:4px; color:rgba(255,255,255,.66); font-size:13px; }
.contact { padding:94px 0; background:var(--red); color:var(--white); }
.contact .wrap { display:flex; justify-content:space-between; align-items:end; gap:40px; }
.contact h2 { max-width:780px; margin:0 0 12px; font:500 clamp(39px,5vw,65px)/1 var(--serif); letter-spacing:-.04em; }
.contact p { max-width:600px; margin:0; }
.contact .button { white-space:nowrap; }
.footer { padding:25px 0; background:var(--cream); color:var(--muted); font:500 10px/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.footer .wrap { display:flex; justify-content:space-between; gap:20px; }

@media (max-width:760px) {
  .wrap { width:min(var(--wide),calc(100% - 32px)); }
  .hero { min-height:100svh; }
  .hero-image { object-position:64% 51%; }
  .hero::before { background:linear-gradient(180deg,rgba(8,20,26,.7) 0%,rgba(8,20,26,.10) 25%,rgba(8,20,26,.18) 48%,rgba(8,20,26,.91) 100%); }
  .topbar,.topbar .wrap { min-height:70px; }
  .menu a:not(.menu-cta) { display:none; }
  .mobile-crumbs { position:absolute; z-index:2; top:70px; left:0; display:flex; align-items:center; width:100%; min-height:42px; padding:0 16px; overflow-x:auto; border-bottom:1px solid rgba(255,255,255,.28); background:rgba(8,20,26,.58); color:var(--white); font:500 11px/1 var(--mono); letter-spacing:.02em; white-space:nowrap; }
  .mobile-crumbs a { flex:0 0 auto; padding:11px 7px; color:var(--white); text-decoration:none; }
  .mobile-crumbs a:first-child { padding-left:0; }
  .mobile-crumbs a:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; }
  .mobile-crumbs .separator { flex:0 0 auto; color:var(--gold); }
  .hero-content { min-height:calc(100svh - 70px); padding:42px 0 76px; }
  h1 { font-size:clamp(42px,12vw,61px); }
  .hero-actions { display:grid; grid-template-columns:1fr; width:min(260px,100%); }
  .hero-actions .button { width:100%; }
  .photo-caption { display:none; }
  .intro,.acts .wrap,.dates { padding:75px 0; }
  .intro-grid,.acts .wrap,.dates-grid { grid-template-columns:1fr; gap:28px; }
  .intro .lead { font-size:17px; }
  .contact { padding:72px 0; }
  .contact .wrap { display:block; }
  .contact .button { margin-top:25px; }
  .footer .wrap { flex-direction:column; }
}
