:root{
  --ivory:#f6f1e7; --ivory-2:#efe7d8; --ink:#16233a; --ink-2:#22324d; --gold:#87632f; --gold-soft:#d4b98a;
  --text:#2a3142; --muted:#6b6457;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
section,main{scroll-margin-top:7rem}
body{margin:0;background:var(--ivory);color:var(--text);font-family:var(--serif);line-height:1.6;font-size:1.05rem}
img{display:block;width:100%;height:100%;object-fit:cover}
figure{margin:0;position:relative}
figcaption{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:.7rem 0 0}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:var(--ivory);padding:.6rem 1rem;z-index:100}
.skip:focus{top:1rem}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 1rem;font-weight:500}
h1,h2{font-weight:400;margin:0;color:var(--ink)}
h1:focus,h2:focus{outline:none}
h1:focus-visible,h2:focus-visible{outline:3px solid var(--gold);outline-offset:6px}
.rule{display:inline-block;width:2.5rem;height:1px;background:var(--gold)}
.gold-rule{display:block;width:2.6rem;height:1px;background:var(--gold);margin:2rem 0}

.demo-ribbon{background:var(--ink);color:var(--gold-soft);font-family:var(--sans);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;text-align:center;padding:.6rem 1rem;display:flex;gap:1rem;justify-content:center;align-items:center;flex-wrap:wrap}

.site-header{position:sticky;top:0;z-index:20;background:rgba(246,241,231,.96);border-bottom:1px solid #e2d8c4;display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1.25rem,5vw,4rem)}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.1;color:var(--ink)}
.brand-name{font-size:1.6rem}
.brand-sub{font-family:var(--sans);font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.site-nav{display:flex;align-items:center;gap:2.5rem}
.site-nav ul{list-style:none;display:flex;gap:2rem;margin:0;padding:0}
.site-nav ul a{font-family:var(--sans);font-size:.85rem;text-decoration:none;color:var(--ink);padding:.3rem 0;border-bottom:1px solid transparent;transition:border-color .2s}
.site-nav ul a:hover{border-color:var(--gold)}
.menu-toggle{display:none;background:none;border:1px solid var(--ink);color:var(--ink);font-family:var(--sans);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;padding:.55rem .9rem;gap:.6rem;align-items:center;cursor:pointer}
.bars,.bars::before,.bars::after{display:block;width:16px;height:1px;background:currentColor;position:relative}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-5px}.bars::after{top:5px}

.btn{font-family:var(--sans);font-size:.88rem;letter-spacing:.04em;border:0;padding:.85rem 1.6rem;cursor:pointer;border-radius:2px;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold-soft);color:var(--ink)}
.btn-gold:hover{background:#e3cca3}
.btn-ink{background:var(--ink);color:var(--ivory)}
.btn-ink:hover{background:var(--ink-2)}

.hero{display:grid;grid-template-columns:5fr 7fr;min-height:78vh;background:var(--ink)}
.hero-text{padding:clamp(3rem,8vw,7rem) clamp(1.5rem,5vw,4rem);color:var(--ivory);display:flex;flex-direction:column;justify-content:center}
.hero h1{color:var(--ivory);font-size:clamp(2.8rem,6vw,5rem);line-height:1.02}
.hero h1 span{display:block}
.hero .eyebrow,.band .eyebrow{color:var(--gold-soft)}
.hero h1 em{display:block;font-style:normal;font-size:.62em;color:#e7dcc6;margin-top:.4rem}
.kicker{font-family:var(--sans);letter-spacing:.32em;text-transform:uppercase;font-size:.75rem;margin:0 0 .5rem;color:var(--gold-soft)}
.addr{margin:0 0 2.5rem;font-size:1.15rem}
.hero .btn{align-self:flex-start}
.hero-fig{display:flex;flex-direction:column}
.hero-fig img{flex:1;min-height:320px}
.hero-fig figcaption{color:#c9bfae;padding:.7rem 1.2rem}

.split{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding:0 clamp(1.5rem,5vw,4rem) clamp(4rem,8vw,6rem)}
.split-fig img{aspect-ratio:4/3}
.split-text h2{font-size:clamp(1rem,1.4vw,1.2rem);font-family:var(--sans);font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--gold)}
.split-text .btn{margin-top:1.2rem}

.band{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--ivory)}
.band-text{padding:clamp(3rem,7vw,6rem) clamp(1.5rem,5vw,4rem);align-self:center}
.band h2{color:var(--ivory);font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;max-width:13ch}
.band-fig{display:flex;flex-direction:column}
.band-fig img{flex:1;min-height:280px}
.band-fig figcaption{color:#c9bfae;padding:.7rem 1.2rem}

.gallery{padding:clamp(4rem,8vw,6rem) clamp(1.5rem,5vw,4rem)}
.gallery-head{max-width:36rem;margin-bottom:2.5rem}
.gallery-head h2{font-size:clamp(2rem,3.5vw,2.8rem);margin-bottom:.6rem}
.gallery-head p{color:var(--muted);margin:0}
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:5fr 4fr 5fr;gap:1.2rem;align-items:start}
.grid li:nth-child(2){margin-top:3rem}
.grid img{aspect-ratio:4/5}

.site-footer{background:var(--ink);color:var(--gold-soft);font-family:var(--sans);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:1.2rem;align-items:center;justify-content:center;padding:1.8rem 1rem;text-align:center;flex-wrap:wrap}
.site-footer p{margin:0}

dialog{border:0;padding:2.5rem;max-width:26rem;width:calc(100% - 2rem);background:var(--ivory);color:var(--text);border-top:3px solid var(--gold);box-shadow:0 30px 60px rgba(22,35,58,.3)}
dialog::backdrop{background:rgba(22,35,58,.6)}
dialog h2{font-size:2rem;margin-bottom:.8rem}
dialog p{margin:0 0 1.8rem}

.reveal{opacity:1;transform:none;transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

@media (max-width:860px){
  .menu-toggle{display:inline-flex}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ivory);flex-direction:column;align-items:stretch;gap:1rem;padding:1rem 1.25rem 1.5rem;border-bottom:1px solid #e2d8c4}
  .site-nav.open{display:flex}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav ul a{display:block;padding:.85rem 0;border-bottom:1px solid #e8dfcd;font-size:1rem}
  .hero,.split,.band{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .grid li:nth-child(2){margin-top:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
}
