/* ============================================================
   PETER BRACKE — peterbracke.com
   Classic, discreet redesign · 2026
   Typography: Cormorant Garamond (display) · EB Garamond (text)
   ============================================================ */

:root{
  --bg:        #fbfaf7;
  --bg-2:      #f3f0e9;
  --ink:       #22201b;
  --ink-dim:   #756f63;
  --acc:       #44584a;   /* muted forest green — quiet nod to the Amazon work */
  --line:      rgba(34,32,27,.16);
  --font-d:    "Cormorant Garamond", serif;
  --font-b:    "EB Garamond", serif;
  --pad:       clamp(1.2rem, 4vw, 4rem);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-b);
  font-size:clamp(1.06rem,1.15vw,1.2rem);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--acc);color:#fff}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}

/* small-caps utility style used for labels & navigation */
.sc, .nav a, .logo, .burger, .menu-close, .eyebrow, .crumbs, .p-meta .k,
.card-label .yr, .venue-block .k, .contact-list .k, .foot-bar, .gallery-note,
.p-nav .lbl, .exh-big .when, .timeline .t-when, .hero-scroll, .notice{
  font-family:var(--font-b);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
}

/* ---------------- header ---------------- */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem var(--pad);
  background:rgba(251,250,247,.88);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.logo{color:var(--ink);letter-spacing:.22em}
.logo span{color:var(--ink-dim)}
.nav{display:flex;gap:1.9rem}
.nav a{color:var(--ink);position:relative;padding:.2rem 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--ink);transition:width .3s}
.nav a:hover::after,.nav a.on::after{width:100%}
.burger{display:none;background:none;border:0;cursor:pointer;color:var(--ink)}

/* mobile menu */
.menu-overlay{
  position:fixed;inset:0;background:var(--bg);z-index:1500;display:flex;flex-direction:column;
  justify-content:center;align-items:center;padding:var(--pad);gap:.6rem;
  transform:translateY(-100%);transition:transform .45s cubic-bezier(.77,0,.18,1);
}
.menu-overlay.open{transform:translateY(0)}
.menu-overlay a{
  font-family:var(--font-d);font-weight:500;
  font-size:clamp(1.8rem,6vw,2.8rem);line-height:1.3;color:var(--ink);
}
.menu-overlay a:hover{color:var(--acc);font-style:italic}
.menu-close{position:absolute;top:1.4rem;right:var(--pad);background:none;border:0;color:var(--ink);cursor:pointer}

/* ---------------- type ---------------- */
.display{
  font-family:var(--font-d);font-weight:500;line-height:1.05;letter-spacing:.01em;
}
.eyebrow{color:var(--acc);display:flex;align-items:center;gap:.9rem}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:var(--acc)}
.prose{max-width:64ch;color:var(--ink)}
.prose p{margin-bottom:1.2em}
.prose strong{font-weight:600}
.prose em{font-style:italic}
.prose a{border-bottom:1px solid var(--line)}
.prose a:hover{color:var(--acc);border-color:var(--acc)}
.prose blockquote{
  border-left:1px solid var(--acc);padding-left:1.6rem;margin:2.2rem 0;
  font-family:var(--font-d);font-style:italic;font-size:1.25em;line-height:1.5;color:var(--ink);
}
.prose h3{
  font-family:var(--font-b);font-weight:500;text-transform:uppercase;letter-spacing:.18em;
  font-size:.8rem;margin:2.6rem 0 1rem;color:var(--ink-dim);
}
.dim{color:var(--ink-dim)}

/* ---------------- layout ---------------- */
.section{padding:clamp(3.5rem,9vh,7rem) var(--pad)}
.section-head{display:flex;align-items:baseline;gap:1.3rem;margin-bottom:2.8rem;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:1.1rem}
.section-head .num{color:var(--acc);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.section-head h2{font-family:var(--font-d);font-weight:500;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.1}
.section-head .tail{margin-left:auto;color:var(--ink-dim);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.section-head .tail a:hover{color:var(--acc)}

/* ---------------- hero (home, classic) ---------------- */
.hero-classic{
  padding:clamp(9rem,20vh,13rem) var(--pad) clamp(3rem,7vh,5rem);
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.4rem;
}
.hero-classic .eyebrow{justify-content:center}
.hero-classic .eyebrow::after{content:"";width:2.2rem;height:1px;background:var(--acc)}
.hero-classic h1{
  font-family:var(--font-d);font-weight:500;line-height:1;
  font-size:clamp(3rem,9vw,6.5rem);
}
.hero-classic .lede{max-width:46ch;color:var(--ink-dim);font-size:1.15em;font-style:italic}
.hero-fig{position:relative;padding:clamp(2rem,5vh,3.5rem) var(--pad) 0;text-align:center}
.hero-fig img{width:auto;max-width:min(34rem,100%);max-height:82vh;margin:0 auto;object-fit:contain}
.hero-fig figcaption{
  text-align:center;padding:1rem var(--pad);color:var(--ink-dim);
  text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;
}

/* announcement bar (static, discreet) */
.notice{
  display:block;text-align:center;padding:1.1rem var(--pad);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  color:var(--ink);transition:background .3s;
}
.notice em{font-family:var(--font-d);font-style:italic;text-transform:none;letter-spacing:.02em;font-size:1.25rem;display:inline-block;margin-right:.6rem}
.notice:hover{background:var(--bg-2)}

/* ---------------- work grid ---------------- */
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.4rem,3vw,2.8rem) clamp(1rem,2vw,2rem)}
.card{grid-column:span 4}
.card.w6{grid-column:span 6}
.card.w8{grid-column:span 8}
.card.w5{grid-column:span 5}
.card.w7{grid-column:span 7}
.card img{width:100%;object-fit:cover;aspect-ratio:4/3;transition:opacity .4s}
.card.tall img{aspect-ratio:3/4}
.card:hover img{opacity:.88}
.card .tag{display:none}
.card-label{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.75rem .1rem 0;border-top:0;
}
.card-label h3{font-family:var(--font-d);font-weight:500;font-size:1.25rem;line-height:1.25}
.card:hover .card-label h3{font-style:italic}
.card-label .yr{color:var(--ink-dim);white-space:nowrap}

/* ---------------- feature (book) ---------------- */
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.feature-visual img{width:min(26rem,100%);margin:0 auto;box-shadow:0 18px 45px rgba(34,32,27,.18)}
.feature h2{font-family:var(--font-d);font-weight:500;font-size:clamp(1.9rem,4vw,3.1rem);line-height:1.1;margin:1rem 0 1.4rem}
.feature h2 em{font-style:italic}
.venue-block{border-top:1px solid var(--line);margin-top:2rem}
.venue-block .row{display:flex;justify-content:space-between;gap:1.4rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.venue-block .k{color:var(--ink-dim);padding-top:.3rem;white-space:nowrap}
.venue-block .v{text-align:right}
.venue-block a{border-bottom:1px solid var(--line)}
.venue-block a:hover{color:var(--acc);border-color:var(--acc)}

/* buttons */
.btn{
  display:inline-block;margin-top:2rem;
  text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;
  border:1px solid var(--ink);padding:.85rem 1.7rem;transition:all .3s;
}
.btn:hover{background:var(--ink);color:var(--bg)}
.btn.solid{background:var(--ink);color:var(--bg)}
.btn.solid:hover{background:var(--acc);border-color:var(--acc)}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

/* ---------------- strip (horizontal scroll) ---------------- */
.strip{display:flex;gap:1rem;overflow-x:auto;padding:0 var(--pad) 1rem;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink-dim) transparent}
.strip img{height:clamp(13rem,32vh,22rem);width:auto;flex:0 0 auto;scroll-snap-align:start}

/* ---------------- project page ---------------- */
.p-hero{padding:9rem var(--pad) 2.5rem}
.p-hero .crumbs{color:var(--ink-dim);margin-bottom:2.2rem}
.p-hero .crumbs a:hover{color:var(--acc)}
.p-hero h1{font-family:var(--font-d);font-weight:500;font-size:clamp(2.3rem,6vw,4.6rem);line-height:1.05;max-width:22ch}
.p-meta{display:flex;gap:2.6rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--line)}
.p-meta div{font-size:1rem}
.p-meta .k{display:block;color:var(--ink-dim);margin-bottom:.3rem}

/* masonry gallery */
.masonry{columns:3;column-gap:1.2rem;padding:0 var(--pad)}
.masonry a{display:block;margin-bottom:1.2rem;break-inside:avoid}
.masonry img{width:100%;transition:opacity .4s}
.masonry a:hover img{opacity:.88}
.gallery-note{padding:.6rem var(--pad) 0;color:var(--ink-dim)}
.gallery-note a{border-bottom:1px solid var(--line);text-transform:none;letter-spacing:.02em}
.gallery-note a:hover{color:var(--acc)}

/* video embeds */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(28rem,100%),1fr));gap:2.6rem 1.8rem;padding:0 var(--pad)}
.video-item h3{font-family:var(--font-d);font-weight:500;font-size:1.25rem;margin-bottom:.7rem;line-height:1.3}
.video-item .frame{position:relative;aspect-ratio:16/9;background:var(--bg-2)}
.video-item iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* prev / next */
.p-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:4.5rem}
.p-nav a{padding:2.3rem var(--pad);display:block;transition:background .3s}
.p-nav a:hover{background:var(--bg-2)}
.p-nav .lbl{color:var(--ink-dim)}
.p-nav .t{font-family:var(--font-d);font-weight:500;font-size:clamp(1.15rem,2.2vw,1.6rem);line-height:1.2;display:block;margin-top:.5rem}
.p-nav a:hover .t{font-style:italic;color:var(--acc)}
.p-nav .next{text-align:right;border-left:1px solid var(--line)}

/* ---------------- exhibitions ---------------- */
.exh-big{display:block;border:1px solid var(--line);padding:clamp(1.5rem,3.5vw,2.6rem);transition:background .3s}
.exh-big:hover{background:var(--bg-2)}
.exh-big .when{color:var(--acc)}
.exh-big h3{font-family:var(--font-d);font-weight:500;font-size:clamp(1.5rem,3.6vw,2.5rem);line-height:1.15;margin:.7rem 0}
.exh-big .where{color:var(--ink-dim)}
.timeline{border-top:1px solid var(--line)}
.timeline .t-row{display:grid;grid-template-columns:10rem 1fr;gap:1.5rem;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.timeline .t-when{color:var(--acc);padding-top:.35rem}
.timeline .t-what strong{font-weight:600}
.timeline .t-what .loc{color:var(--ink-dim)}
.timeline a{border-bottom:1px solid var(--line)}
.timeline a:hover{color:var(--acc);border-color:var(--acc)}

/* ---------------- contact ---------------- */
.contact-hero h1{font-family:var(--font-d);font-weight:500;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1.05}
.contact-list{margin-top:3rem;border-top:1px solid var(--line)}
.contact-list a,.contact-list .c-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:1.3rem 0;border-bottom:1px solid var(--line);
}
.contact-list .k{color:var(--ink-dim)}
.contact-list .v{font-family:var(--font-d);font-weight:500;font-size:clamp(1.1rem,2.4vw,1.5rem);text-align:right;word-break:break-word}
.contact-list a:hover .v{font-style:italic;color:var(--acc)}

/* ---------------- footer ---------------- */
.site-foot{border-top:1px solid var(--line);margin-top:4rem}
.foot-cta{display:block;padding:clamp(2.6rem,7vh,4.5rem) var(--pad);text-align:center}
.foot-cta .display{font-size:clamp(1.9rem,4.5vw,3.2rem);font-style:italic;transition:color .3s}
.foot-cta:hover .display{color:var(--acc)}
.foot-bar{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1.2rem var(--pad);border-top:1px solid var(--line);color:var(--ink-dim);
}
.foot-bar a:hover{color:var(--acc)}

/* ---------------- lightbox ---------------- */
.lightbox{
  position:fixed;inset:0;background:rgba(251,250,247,.97);z-index:3000;display:none;
  align-items:center;justify-content:center;padding:3vh 3vw;cursor:zoom-out;
}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 12px 50px rgba(34,32,27,.25)}
.lightbox .lb-close{
  position:absolute;top:1.3rem;right:1.6rem;color:var(--ink);background:none;border:0;cursor:pointer;
  font-family:var(--font-b);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;
}

/* ---------------- reveal ---------------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}

/* ---------------- responsive ---------------- */
@media(max-width:900px){
  .nav{display:none}
  .burger{display:block}
  .work-grid{grid-template-columns:repeat(6,1fr)}
  .card,.card.w5,.card.w6,.card.w7,.card.w8{grid-column:span 6}
  .feature{grid-template-columns:1fr}
  .masonry{columns:2}
  .p-nav{grid-template-columns:1fr}
  .p-nav .next{border-left:0;border-top:1px solid var(--line);text-align:left}
  .timeline .t-row{grid-template-columns:1fr;gap:.15rem}
}
@media(max-width:560px){
  .masonry{columns:1}
}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
}
