@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

:root { --ink: #3a2119; --paper: #d2e2ec; --muted: #957662; --line: rgba(58,33,25,.16); --accent: #79a3c3; --tint: #ebcdb7; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: 'DM Sans', Arial, sans-serif; font-size: 16px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.topbar { position: absolute; z-index: 3; top: 0; left: 0; width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 28px 5vw; color: var(--paper); }
.wordmark { font-size: 1.25rem; letter-spacing: .02em; font-weight: 500; }
.wordmark span { color: var(--accent); }
.nav { display: flex; gap: 28px; font-size: .8rem; text-transform: uppercase; letter-spacing: .11em; }
.nav a { opacity: .8; transition: opacity .2s; }
.nav a:hover { opacity: 1; }
.hero { min-height: 92vh; position: relative; display: flex; align-items: flex-end; padding: 0 5vw 10vh; color: var(--paper); overflow: hidden; background: var(--ink); }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; filter: saturate(.82); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(58,33,25,.8), rgba(58,33,25,.12) 72%), linear-gradient(0deg, rgba(58,33,25,.68), transparent 52%); }
.hero-content { position: relative; z-index: 1; max-width: 680px; }
.eyebrow, .section-label { text-transform: uppercase; letter-spacing: .14em; font-size: .68rem; color: var(--accent); margin: 0 0 20px; }
.hero h1 { font-size: clamp(3.5rem, 8vw, 8.2rem); letter-spacing: -.03em; line-height: .92; font-weight: 500; margin: 0 0 28px; }
em { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
.hero-copy { max-width: 370px; line-height: 1.55; color: rgba(210,226,236,.86); margin: 0 0 32px; }
.button { display: inline-flex; gap: 18px; justify-content: space-between; align-items: center; padding: 15px 18px; min-width: 210px; font-size: .78rem; letter-spacing: .03em; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-light { background: var(--paper); color: var(--ink); }
.button-dark { background: var(--ink); color: var(--paper); }
.scroll-note { position: absolute; z-index: 1; right: 5vw; bottom: 10vh; margin: 0; font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(210,226,236,.74); text-align: right; line-height: 1.5; }
.scroll-note span { color: var(--accent); font-size: 1rem; }
.intro, .works, .contact { padding: 12vw 5vw; }
.intro { background: var(--paper); }
.intro .section-label, .works .section-label { color: var(--muted); }
.intro-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 10vw; align-items: end; }
h2 { font-size: clamp(2.5rem, 5vw, 5.4rem); letter-spacing: -.035em; line-height: .97; font-weight: 500; margin: 0; }
.intro h2 span { color: var(--muted); font-family: 'Playfair Display', Georgia, serif; font-style: italic; }
.intro-text { max-width: 390px; line-height: 1.65; color: var(--muted); }
.intro-text p { margin: 0 0 18px; }
.works { background: var(--tint); }
.section-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 54px; }
.section-head h2 { font-size: clamp(2.2rem, 4vw, 4.3rem); }
.section-note { color: var(--muted); font-size: .78rem; line-height: 1.5; text-align: right; margin: 0; }
.gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.gallery-item { border: 0; padding: 0; position: relative; overflow: hidden; background: var(--muted); cursor: zoom-in; min-height: 240px; }
.gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item-tall { grid-column: span 5; aspect-ratio: 4 / 5; }
.gallery-item-wide { grid-column: span 7; aspect-ratio: 16 / 10; }
.item-index { position: absolute; left: 14px; top: 12px; color: var(--paper); font-size: .7rem; letter-spacing: .08em; text-shadow: 0 1px 5px rgba(58,33,25,.5); }
.details { background: var(--ink); color: var(--paper); padding: 12vw 5vw; }
.details .section-note { color: rgba(210,226,236,.72); }
.details-gallery { grid-auto-flow: dense; }
.detail-item-portrait { grid-column: span 4; aspect-ratio: 4 / 5; }
.detail-item-wide { grid-column: span 8; aspect-ratio: 16 / 10; }
.detail-item-square { grid-column: span 4; aspect-ratio: 1 / 1; }
.details .gallery-item { background: var(--muted); }
.contact { background: var(--accent); color: var(--ink); }
.contact .section-label { color: var(--ink); }
.contact-inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: 10vw; align-items: end; }
.contact h2 em { color: var(--paper); }
.contact-actions { max-width: 290px; line-height: 1.55; }
.contact-actions p { margin: 0 0 28px; }
.contact-actions .button { width: 100%; margin-bottom: 18px; }
.social-link { display: inline-flex; justify-content: space-between; width: 100%; border-bottom: 1px solid rgba(58,33,25,.42); padding: 13px 0; font-size: .82rem; }
.footer { display: flex; justify-content: space-between; padding: 24px 5vw; background: var(--ink); color: rgba(210,226,236,.72); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }
.lightbox { position: fixed; z-index: 10; inset: 0; background: rgba(58,33,25,.96); display: grid; place-items: center; padding: 5vh 8vw; }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 100%; max-height: 88vh; object-fit: contain; }
.lightbox-close { position: absolute; top: 22px; right: 28px; border: 0; background: none; color: var(--paper); font-size: 2.2rem; cursor: pointer; line-height: 1; }
.lightbox-count { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: rgba(210,226,236,.76); font-size: .75rem; }
@media (max-width: 700px) {
  .topbar { padding: 22px 6vw; }
  .nav { gap: 13px; font-size: .63rem; }
  .hero { min-height: 86vh; padding: 0 6vw 9vh; }
  .hero h1 { font-size: clamp(3.2rem, 15vw, 5.8rem); }
  .scroll-note { display: none; }
  .intro, .works, .details, .contact { padding: 22vw 6vw; }
  .intro-grid, .contact-inner { grid-template-columns: 1fr; gap: 42px; }
  .section-head { align-items: start; gap: 20px; flex-direction: column; margin-bottom: 34px; }
  .section-note { text-align: left; }
  .gallery { gap: 10px; }
  .gallery-item-tall, .gallery-item-wide { grid-column: span 12; aspect-ratio: 4 / 3; }
  .gallery-item-tall { aspect-ratio: 4 / 5; }
  .detail-item-portrait, .detail-item-wide, .detail-item-square { grid-column: span 12; aspect-ratio: 4 / 3; }
  .detail-item-portrait { aspect-ratio: 4 / 5; }
  .contact-actions { max-width: none; }
}
