
:root{
  --bg:#ffffff;
  --text:#1f1f1d;
  --muted:#5f5b56;
  --accent:#27345c;
  --kicker:#27345c;
  --line:#d8d2c5;
  --card:#ffffff;
  --alt:#e6b947;
  --header:rgba(255,255,255,.96);
  --button-bg:#27345c;
  --button-text:#ffffff;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Arial, Helvetica, sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
}
a{color:inherit}
.skip-link{
  position:fixed;left:16px;top:12px;z-index:100;
  padding:10px 14px;border-radius:8px;background:var(--text);color:#fff;
  transform:translateY(-160%);transition:transform .15s ease
}
.skip-link:focus{transform:translateY(0)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--accent);outline-offset:3px
}
.nowrap{white-space:nowrap}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 40px));margin:0 auto}
.site-header{
  position:sticky;top:0;z-index:20;
  background:var(--header);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px);
}
.nav{
  min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px
}
.brand{
  text-decoration:none;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.94rem
}
.nav-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nav-links a{text-decoration:none;font-size:.95rem}
.nav-links a:hover{text-decoration:underline}
.nav-links a[aria-current="page"]:not(.button){text-decoration:underline;text-underline-offset:6px}
.button{
  display:inline-block;padding:12px 18px;border-radius:999px;
  background:var(--button-bg);color:var(--button-text);text-decoration:none;font-weight:700
}
.button.secondary{background:transparent;color:var(--button-bg);border:1px solid var(--button-bg)}
.hero{padding:88px 0 68px}
.hero.compact{padding:56px 0 46px}
.page-hero{padding:64px 0 46px}
.page-hero h1{margin-bottom:16px}
.page-hero-photo img{min-height:0;aspect-ratio:3/2}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center}
.home-hero .container{width:min(1280px,calc(100% - 40px))}
.home-hero .hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px}
.home-hero .photo-hero img{min-height:0;aspect-ratio:4/3}
.kicker{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--kicker);font-weight:700}
h1,h2,h3{
  font-family: Georgia, 'Times New Roman', serif;
  line-height:1.08;
  font-weight:500;
  margin-top:0;
}
h1{font-size:clamp(3rem,6.4vw,5.5rem);margin-bottom:22px}
h2{font-size:clamp(2rem,4.4vw,3.8rem);margin-bottom:20px}
h3{font-size:1.65rem;margin-bottom:10px}
.lede{font-size:1.24rem;max-width:720px;color:#373531}
.tagline{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;font-style:italic;color:var(--accent);margin:-8px 0 18px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.photo{margin:0;border-radius:22px;overflow:hidden;background:#e8e3dc;box-shadow:0 18px 44px rgba(31,31,29,.12)}
.photo img{width:100%;height:100%;min-height:430px;object-fit:cover}
.photo-hero img{object-position:center 58%}
.section-photo{margin-bottom:28px;border-radius:16px}
.section-photo img{min-height:0;aspect-ratio:3/2}
.festival-carousel{position:relative;margin:0}
.festival-carousel-viewport{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:18px;background:#171715;box-shadow:0 18px 44px rgba(31,31,29,.12)}
.festival-carousel-slide{position:absolute;inset:0;margin:0;opacity:0;pointer-events:none;transition:opacity .3s ease}
.festival-carousel-slide.is-active{opacity:1;pointer-events:auto}
.festival-carousel-slide img{width:100%;height:100%;object-fit:cover}
.festival-carousel-slide.portrait-focus img{object-position:center 30%}
.festival-carousel-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 68px 16px 18px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-size:.9rem;line-height:1.35}
.carousel-control{position:absolute;z-index:2;bottom:14px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:var(--text);font-size:1.2rem;line-height:1;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.2)}
.carousel-previous{right:58px}
.carousel-next{right:14px}
.carousel-count{margin:10px 0 0;text-align:right;color:var(--muted);font-size:.88rem}
.poster-photo img{aspect-ratio:auto;max-height:620px;object-fit:contain;background:#fff}
.photo-band{padding:0 0 76px}
.photo-grid{display:grid;gap:12px}
.four-up{grid-template-columns:repeat(4,1fr)}
.photo-grid img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.festival-hero{padding-bottom:34px}
.festival-hero .photo img{min-height:520px}
.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.impact-item{border-top:1px solid var(--line);padding-top:16px}
.impact-item strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:500}
.festival-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.festival-gallery figure{margin:0;border-radius:14px;overflow:hidden;background:#e8e3dc}
.festival-gallery figure:nth-child(1),.festival-gallery figure:nth-child(4){grid-column:span 7}
.festival-gallery figure:nth-child(2),.festival-gallery figure:nth-child(3){grid-column:span 5}
.festival-gallery figure:nth-child(5),.festival-gallery figure:nth-child(6),.festival-gallery figure:nth-child(7){grid-column:span 4}
.festival-gallery img{width:100%;height:100%;min-height:280px;object-fit:cover}
.festival-gallery .festival-mark{object-fit:contain;padding:26px;background:#fff}
.placeholder{
  min-height:430px;border-radius:22px;border:1px solid var(--line);
  background:
    linear-gradient(145deg,rgba(122,79,57,.12),rgba(255,255,255,.45)),
    repeating-linear-gradient(45deg,transparent 0 24px,rgba(122,79,57,.03) 24px 48px);
  display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--muted);padding:30px
}
section{padding:76px 0}
section.alt{background:var(--alt)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cards.two-up{grid-template-columns:repeat(2,1fr)}
.project-feed{display:grid;grid-template-columns:repeat(4,1fr);gap:0 22px;border-top:1px solid var(--line)}
.project-entry{padding:30px 0;border-bottom:1px solid var(--line)}
.project-poster-frame{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;margin-bottom:22px}
.project-poster{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.poster-argentina{background:#9f1105}
.poster-jukebox{background:#081c37}
.poster-harmony{background:#ffdbc5}
.poster-echoes{background:#0364c5}
.project-entry h3{font-size:clamp(1.7rem,3vw,2.35rem)}
.project-entry p:last-child{color:#4b4945;margin-bottom:0}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px
}
.card p{color:#4b4945}
.card a{font-weight:700}
.card-photo{width:calc(100% + 52px);max-width:none;height:210px;object-fit:cover;margin:-26px -26px 24px;border-radius:17px 17px 0 0}
.card-photo.contain{object-fit:contain;background:#fff;padding:14px}
.card-art-frame{height:360px;margin:-26px -26px 24px;border-radius:17px 17px 0 0;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.past-project-art{display:block;object-fit:contain}
.past-project-art.mural-art{height:115%;width:auto;align-self:flex-start}
.past-project-art.heartland-art{width:62%;height:auto}
.card-photo.partnership-art{height:360px;padding:18px}
.card-photo.partnership-photo{padding:0;object-fit:cover;object-position:center 64%}
.section-subhead{font-size:1.45rem;margin-top:30px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.concert-section{align-items:center}
.concert-section h2{font-size:clamp(2.25rem,3vw,2.75rem);white-space:nowrap}
.outreach-section{padding-bottom:42px}
.past-projects{padding-top:42px}
.director-section{padding:52px 0}
.director-grid{display:grid;grid-template-columns:180px minmax(0,680px);gap:34px;align-items:center}
.director-photo{margin:0;border-radius:14px;overflow:hidden}
.director-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:72% center}
.director-grid h2{font-size:clamp(1.5rem,2vw,2rem);margin-bottom:12px}
.director-grid p{margin-bottom:0}
.about-heading{font-size:clamp(2rem,3.2vw,3.25rem);white-space:nowrap}
.meta{font-size:.92rem;color:var(--muted)}
.callout{border-left:3px solid var(--accent);padding-left:22px;font-size:1.12rem}
.list-clean{padding-left:1.2rem}
.footer{
  border-top:1px solid var(--line);
  padding:46px 0 64px;
  color:var(--muted)
}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px}
.footer a{color:inherit}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:.9rem;font-weight:700;margin-bottom:6px}
input,textarea,select{
  width:100%;padding:12px 13px;border:1px solid #cfc9bf;border-radius:10px;background:#fff;font:inherit
}
textarea{min-height:160px;resize:vertical}
.full{grid-column:1/-1}
.small{font-size:.92rem;color:var(--muted)}
.gallery-caption{padding:11px 14px 13px;margin:0;background:#fff;color:var(--muted);font-size:.9rem;line-height:1.35}
.festival-gallery figure{display:flex;flex-direction:column}
.festival-gallery figure img{flex:1}
.archive-link{margin-top:28px}
.contact-options{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.contact-option{padding:28px;border-top:1px solid var(--line)}
.contact-option h2{font-size:1.6rem;margin-bottom:12px}
.pitch-header .nav{min-height:64px}
.pitch-header .nav-links{gap:12px}
.pitch-details{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.pitch-detail{border-top:1px solid var(--line);padding-top:16px}
.pitch-detail strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:1.35rem;font-weight:500;margin-bottom:6px}
.pitch-detail p{margin:0;color:#4b4945}
@media (max-width:1020px){
  .project-feed{grid-template-columns:repeat(2,1fr);gap:0 32px}
}
@media (max-width:820px){
  .nav{align-items:center;padding:14px 0}
  .nav-links{gap:14px}
  .hero{padding-top:64px}
  .hero-grid,.two-col,.cards,.cards.two-up,.project-feed,.footer-grid,.form-grid,.director-grid{grid-template-columns:1fr}
  .director-photo{max-width:160px}
  .about-heading{white-space:normal}
  .concert-section h2{white-space:normal}
  .four-up{grid-template-columns:repeat(2,1fr)}
  .impact-grid{grid-template-columns:1fr}
  .festival-gallery{grid-template-columns:1fr}
  .festival-gallery figure:nth-child(n){grid-column:auto}
  .photo img{min-height:300px}
  .home-hero .photo-hero img{min-height:0;aspect-ratio:3/2}
  .placeholder{min-height:300px}
  .full{grid-column:auto}
  .contact-options,.pitch-details{grid-template-columns:1fr}
}
@media (max-width:560px){
  .nav{align-items:flex-start;flex-direction:column}
  .nav-links{width:100%;justify-content:space-between}
  .nav-links a{font-size:.9rem}
  .project-feed{grid-template-columns:1fr}
  .hero{padding-top:52px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .festival-carousel-slide{transition:none}
}
