:root{
  --ink:#111;--muted:#555;--bg:#fff;--alt:#f4f4f2;--accent:#9dff1e;--accent-ink:#111;--line:#ddd;
  --max:1120px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--font);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.narrow{max-width:720px;margin:0 auto}
h1,h2,h3,h4{font-weight:400;line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(2rem,4.5vw,3.2rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.4rem)}
h3{font-size:1.45rem;margin-top:1.6em}
h4{font-size:1.1rem;font-weight:600;margin-top:1.4em;margin-bottom:.3em}
p{margin:0 0 1em}
.caps{text-transform:uppercase;letter-spacing:.04em}
.small{font-size:.92rem;color:var(--muted)}

/* header */
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.site-header .wrap{display:flex;justify-content:space-between;align-items:center;min-height:64px;gap:16px;flex-wrap:wrap}
.brand{text-decoration:none;font-size:1.05rem}
.nav{display:flex;gap:20px;flex-wrap:wrap;font-size:.95rem}
.nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-color:var(--ink)}

/* sections */
section{padding:72px 0}
section.alt{background:var(--alt)}
.hero{text-align:center;padding:88px 0 48px}
.hero p{font-size:clamp(1.15rem,2.2vw,1.45rem);max-width:640px;margin:0 auto}
.gallery-arch{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:56px;align-items:end}
.gallery-arch img{width:100%;aspect-ratio:3/4;object-fit:cover}
.gallery-arch img:nth-child(odd){border-radius:999px 999px 0 0}
.gallery-arch img:nth-child(2){border-radius:0 0 999px 999px}
.gallery-arch img:nth-child(4){border-radius:12px}
.split{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.split.rev{grid-template-columns:1.2fr 1fr}
.oval{border-radius:50%/42%;width:100%;max-width:420px;margin:0 auto;aspect-ratio:4/5;object-fit:cover}
.d-shape{border-radius:0 999px 999px 0;width:100%;max-width:420px;aspect-ratio:3/4;object-fit:cover}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink);text-decoration:none;padding:12px 22px;font-size:.98rem;border-radius:2px;transition:filter .15s}
.btn:hover{filter:brightness(.92)}
.btn.ghost{background:transparent;border:1px solid var(--ink)}
.center{text-align:center}
.box{border-left:4px solid var(--accent);background:var(--alt);padding:22px 26px;margin:0 0 40px}
.box h2{font-size:1.6rem;margin-bottom:.4em}
.list-arrow{list-style:none;padding:0;margin:0 0 1em}
.list-arrow li{padding-left:1.4em;position:relative;margin-bottom:.5em}
.list-arrow li:before{content:"→";position:absolute;left:0}
.mail{font-size:1.25rem}
.embed{margin-top:24px;border:1px solid var(--line);background:#fff;width:100%;height:320px}
.vgallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px;margin-top:24px}
.vgallery figure{margin:0}
.vgallery img{width:100%;aspect-ratio:1/1;object-fit:cover}
.vgallery figcaption{font-size:.9rem;color:var(--muted);margin-top:6px}
figure.portrait{margin:32px 0}
figure.portrait figcaption{font-size:.92rem;color:var(--muted);margin-top:8px}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:32px 0;font-size:.9rem;color:var(--muted)}
.site-footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.site-footer a{color:var(--ink)}

@media (max-width:820px){
  section{padding:52px 0}
  .split,.split.rev{grid-template-columns:1fr;gap:32px}
  .gallery-arch{grid-template-columns:repeat(3,1fr)}
  .gallery-arch img:nth-child(n+4){display:none}
  .d-shape{max-width:340px}
}
