:root{
    --bg:#f4f1e7;--bg-2:#ebe6d8;--ink:#181410;--ink-soft:#56504a;
    --dark:#15110c;--cream:#f1ede1;--cream-soft:#c4bfb0;
    --red:#bf1a2f;--red-deep:#8f1322;
    --gold:#cf9433;--gold-deep:#a9761f;
    --line:#d8d2c2;--line-dark:rgba(241,237,225,.18);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:"Spectral",Georgia,serif;font-size:19px;font-weight:400;line-height:1.62;-webkit-font-smoothing:antialiased;}
  h1,h2,h3,.geo{font-family:"Jost",sans-serif;font-weight:300;margin:0;letter-spacing:.01em;}
  a{color:inherit;text-decoration:none;}
  .container{max-width:1120px;margin:0 auto;padding:0 48px;}
  .eyebrow{font-family:"Jost",sans-serif;font-weight:500;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--red);}
  .ph{color:var(--ink-soft);font-style:italic;}
  .preview-bar{background:var(--dark);color:var(--cream-soft);font-family:"Jost";font-weight:400;font-size:12px;letter-spacing:.05em;text-align:center;padding:8px 16px;}
  .mark{display:inline-block;vertical-align:middle;}
  .ph-img{background:repeating-linear-gradient(135deg,rgba(0,0,0,.035) 0 13px,transparent 13px 26px),var(--bg-2);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-family:"Jost";font-weight:400;font-size:11px;letter-spacing:.18em;text-transform:uppercase;}
  .btn{font-family:"Jost";font-weight:500;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;padding:15px 30px;border:1px solid var(--ink);background:none;color:var(--ink);cursor:pointer;border-radius:2px;transition:all .18s;display:inline-block;}
  .btn:hover{background:var(--ink);color:var(--bg);}
  .btn.red{background:var(--red);border-color:var(--red);color:#fff;}
  .btn.red:hover{background:var(--red-deep);border-color:var(--red-deep);}

  header{display:flex;align-items:center;justify-content:space-between;padding:26px 48px;max-width:1120px;margin:0 auto;border-bottom:1px solid var(--line);}
  .brand{display:flex;align-items:center;gap:14px;font-family:"Jost";font-weight:400;font-size:19px;letter-spacing:.05em;}
  nav{display:flex;gap:30px;align-items:center;font-family:"Jost";font-weight:400;}
  nav a{font-size:14px;letter-spacing:.03em;color:var(--ink);position:relative;}
  nav a:not(.pill)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--red);transition:width .22s;}
  nav a:not(.pill):hover::after{width:100%;}
  nav a.pill{color:var(--red);border:1px solid var(--red);padding:9px 18px;border-radius:2px;letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:500;}
  nav a.pill:hover{background:var(--red);color:#fff;}
  .menu-btn{display:none;font-family:"Jost";font-size:12px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);padding:9px 14px;border-radius:2px;}

  /* hero — split with image */
  .hero{position:relative;overflow:hidden;padding:58px 0 84px;}
  .hero-inner{position:relative;display:grid;grid-template-columns:1.04fr .96fr;gap:58px;align-items:center;}
  .hero-copy{text-align:left;}
  .hero .eyebrow{display:block;margin-bottom:26px;}
  .hero h1{font-size:clamp(42px,5.6vw,80px);line-height:.99;font-weight:500;letter-spacing:0;}
  .hero .tagline{display:block;font-family:"Spectral";font-style:italic;font-weight:500;font-size:clamp(20px,2.4vw,27px);color:var(--ink-soft);margin-top:16px;}
  .hero .dates{font-family:"Jost";font-weight:400;font-size:16px;letter-spacing:.18em;text-transform:uppercase;margin:30px 0 8px;}
  .hero .where{color:var(--ink-soft);font-style:italic;margin-bottom:36px;}
  .hero .hero-intro{max-width:470px;margin:20px 0 0;color:var(--ink-soft);}
  .hero-cta{display:flex;gap:16px;justify-content:flex-start;flex-wrap:wrap;}
  .hero-photo{position:relative;}
  .hero-photo .ph-img{aspect-ratio:4/5;border-radius:6px;min-height:340px;}
  .hero-photo .tick{position:absolute;width:13px;height:13px;border:1.5px solid var(--gold);z-index:2;}
  .hero-photo .tick.tl{top:-5px;left:-5px;border-right:none;border-bottom:none;}
  .hero-photo .tick.tr{top:-5px;right:-5px;border-left:none;border-bottom:none;}
  .hero-photo .tick.bl{bottom:-5px;left:-5px;border-right:none;border-top:none;}
  .hero-photo .tick.br{bottom:-5px;right:-5px;border-left:none;border-top:none;}
  .ornament{display:flex;align-items:center;justify-content:center;gap:18px;}
  .ornament .ln{width:54px;height:1px;background:var(--line);}
  .ornament.dark .ln{background:var(--line-dark);}

  /* artistic director — subtle */
  .director{padding:60px 0;}
  .director-grid{display:grid;grid-template-columns:.64fr 1.36fr;gap:46px;align-items:center;}
  .director .photo-wrap{position:relative;max-width:290px;}
  .director .photo-wrap .ph-img{aspect-ratio:4/5;border-radius:6px;}
  .director .role{font-family:"Jost";font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);}
  .director h2{font-size:clamp(26px,3.3vw,37px);font-weight:300;letter-spacing:.01em;margin:9px 0 6px;}
  .director p{margin:14px 0 0;color:var(--ink-soft);}
  .director .creds{font-family:"Jost";font-weight:400;font-size:13px;letter-spacing:.03em;color:var(--ink-soft);margin-top:20px;}
  .director .more{margin-top:24px;}

  section.block{padding:92px 0;}
  .sec-eyebrow{display:block;margin-bottom:16px;}
  .sec-title{font-size:clamp(28px,4vw,42px);font-weight:300;letter-spacing:.02em;}
  .center{text-align:center;}

  .vision-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
  .vision .lead{font-style:italic;font-weight:500;font-size:clamp(23px,3.1vw,31px);line-height:1.44;color:var(--ink-soft);}
  .vision p{color:var(--ink-soft);margin:20px 0 0;}
  .vision .ph-img{aspect-ratio:1/1;border-radius:4px;}

  .program{background:var(--dark);color:var(--cream);}
  .program .sec-title{color:var(--cream);}
  .program .eyebrow{color:var(--red);}
  .concert{display:grid;grid-template-columns:150px 1fr auto;gap:28px;align-items:center;padding:30px 0;border-top:1px solid var(--line-dark);transition:padding-left .22s;}
  .concert:last-of-type{border-bottom:1px solid var(--line-dark);}
  .concert:hover{padding-left:12px;}
  .concert .date{font-family:"Jost";font-weight:400;font-size:18px;letter-spacing:.03em;color:var(--cream);}
  .concert .date small{display:block;font-family:"Jost";font-weight:400;font-size:11px;letter-spacing:.13em;color:#aaa79c;margin-top:5px;}
  .concert h3{font-size:27px;font-weight:400;color:var(--cream);margin-bottom:6px;}
  .concert .works{font-style:italic;color:#c2bfb4;font-size:17px;}
  .concert .venue{font-family:"Jost";font-weight:400;font-size:13px;letter-spacing:.05em;color:var(--cream-soft);display:flex;align-items:center;gap:9px;}
  .concert .venue::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;}
  .concert .go{font-family:"Jost";font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dark);background:var(--cream);padding:11px 20px;border-radius:2px;white-space:nowrap;transition:all .18s;}
  .concert .go:hover{background:var(--red);color:#fff;}
  
  .venues .vfeatured{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;margin-top:46px;}
  .venues .vfeatured .ph-img{aspect-ratio:16/11;border-radius:4px;min-height:280px;}
  .vcard-label{font-family:"Jost";font-weight:500;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:13px;display:flex;align-items:center;gap:10px;}
  .vcard-label::before{content:"";width:26px;height:1px;background:var(--red);}
  .venues h3{font-size:30px;font-weight:300;font-family:"Jost";letter-spacing:.02em;margin-bottom:10px;}
  .venues .addr{color:var(--ink-soft);font-style:italic;margin-bottom:14px;}
  .venues .vsat{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:46px;}
  .vsat .vbox{border-top:1px solid var(--ink);padding-top:22px;}
  .vsat .vbox h3{font-size:23px;}
  .map-note{margin-top:48px;display:flex;gap:30px;align-items:center;flex-wrap:wrap;justify-content:space-between;border:1px solid var(--line);border-radius:4px;padding:26px 30px;background:var(--bg-2);}
  .map-note .mtxt{font-style:italic;color:var(--ink-soft);max-width:520px;}
  .map-mini{width:150px;height:96px;border:1px solid var(--line);border-radius:3px;position:relative;background:var(--bg);flex:none;}
  .map-mini span{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid var(--red);}
  .map-mini span.m{background:var(--red);}
  /* tighten the venues→artists transition (map box already closes the section visually) */
  .block.venues{padding-bottom:58px;}
  #artists{padding-top:64px;}

  .artist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:48px;}
  .artist .ph-img{aspect-ratio:4/5;border-radius:4px;}
  .artist .nm{font-family:"Jost";font-weight:400;font-size:20px;letter-spacing:.02em;margin:15px 0 3px;}
  .artist .inst{font-family:"Jost";font-weight:500;font-size:12px;letter-spacing:.08em;color:var(--red);}

  .support{background:var(--dark);color:var(--cream);text-align:center;}
  .support .eyebrow{color:var(--red);}
  .support h2{font-family:"Spectral";font-style:italic;font-weight:500;font-size:clamp(29px,4.5vw,44px);color:var(--cream);max-width:720px;margin:18px auto 18px;line-height:1.32;}
  .support p{max-width:520px;margin:0 auto 30px;color:var(--cream-soft);}
  .support .btn{border-color:var(--cream);color:var(--cream);}
  .support .btn:hover{background:var(--red);border-color:var(--red);color:#fff;}

  .news .field{display:flex;gap:12px;max-width:470px;margin:30px auto 0;}
  .news input{flex:1;font-family:"Jost";font-size:14px;padding:15px 18px;border:1px solid var(--ink);border-radius:2px;background:#fff;color:var(--ink);}
  .news input:focus{outline:2px solid var(--red);outline-offset:1px;}

  .sponsors{background:var(--bg-2);overflow:hidden;}
  .sponsor-carousel{margin-top:44px;position:relative;overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);}
  .sponsor-track{display:flex;gap:28px;width:max-content;animation:sponsor-scroll 36s linear infinite;}
  .sponsor-carousel:hover .sponsor-track{animation-play-state:paused;}
  .sponsor-track .ph-img{width:172px;height:74px;border-radius:3px;flex:none;background-color:var(--bg);}
  @keyframes sponsor-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  footer{background:var(--dark);color:var(--cream-soft);padding:66px 0 36px;}
  .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px;}
  .foot-brand{display:flex;align-items:center;gap:13px;font-family:"Jost";font-weight:400;font-size:20px;letter-spacing:.04em;color:var(--cream);margin-bottom:14px;}
  footer h4{font-family:"Jost";font-weight:500;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 15px;}
  footer ul{list-style:none;padding:0;margin:0;}
  footer li{margin-bottom:10px;font-size:16px;}
  footer a:hover{color:var(--cream);}
  .foot-base{border-top:1px solid var(--line-dark);margin-top:48px;padding-top:24px;text-align:center;font-family:"Jost";font-size:12px;letter-spacing:.05em;}

  @media(max-width:860px){
    .container,header{padding-left:24px;padding-right:24px;}
    nav{display:none;}.menu-btn{display:block;}
    .hero-inner,.director-grid,.vision-grid,.venues .vfeatured,.venues .vsat,.foot-grid{grid-template-columns:1fr;gap:34px;}
    .hero-photo .ph-img{aspect-ratio:16/11;min-height:240px;}
    .director .photo-wrap{max-width:100%;}
    .fact{border-right:none;border-bottom:1px solid var(--line);padding:22px 24px;}
    .concert{grid-template-columns:1fr;gap:10px;}
    .concert .go{justify-self:start;}
    .artist-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(prefers-reduced-motion:reduce){
    .sponsor-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;}
    .sponsor-carousel{-webkit-mask-image:none;mask-image:none;}
  }
  @media(prefers-reduced-motion:no-preference){
    .hero-inner>*{animation:rise .85s cubic-bezier(.2,.7,.2,1) both;}
    .hero-inner>*:nth-child(2){animation-delay:.12s;}
    @keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
  }
