@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap");
:root{--paper:#f5f3ee;--olive:#737568;--ink:#292a27;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:var(--serif);font-weight:500}h2{font-size:clamp(32px,4.1vw,62px);line-height:1.04;text-transform:uppercase;color:var(--olive)}.wrap{width:89%;max-width:1510px;margin-inline:auto}.hero{color:var(--paper);background:linear-gradient(90deg,#737568 1%,#737568 22%,#73756844 62%,transparent),url(/assets/hero.webp) right 57%/auto 112% no-repeat,#737568;min-height:min(63vw,1000px);display:flex;flex-direction:column}.hero header{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:clamp(16px,2.35vw,36px) 0;gap:20px}nav,.header-actions,.actions{display:flex;align-items:center;gap:clamp(12px,2.7vw,40px)}nav a,.button,footer p{font-size:clamp(11px,1.05vw,16px);text-transform:uppercase}.brand{display:inline-flex;align-items:center;gap:8px;line-height:1;white-space:nowrap;font-size:clamp(17px,1.65vw,26px)}.brand small{display:block;font-size:.47em;letter-spacing:.14em}.mark{font-size:1.65em;letter-spacing:-.12em;margin-right:.12em}.header-actions{justify-content:end;gap:12px}.social{border:1px solid;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.menu-toggle{display:none}.hero-copy{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:3vw 0 7vw}.hero h1{font-size:clamp(36px,4.2vw,70px);text-transform:uppercase;line-height:1.07;text-wrap:balance}.hero p{font-size:clamp(17px,1.7vw,28px);max-width:22em;margin:1em 0 1.5em}.actions{gap:14px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:100px;padding:.84em 1.48em;min-height:42px;line-height:1.25;background:var(--olive);color:white}.button:hover{filter:brightness(.88)}.light{background:var(--paper);color:#292a27}.outline{background:transparent;border-color:currentColor;color:inherit}.services{padding:6vw 0}.service-layout{display:grid;grid-template-columns:25% 1fr;align-items:stretch}.service-intro{border-right:1px solid var(--olive);padding-right:2vw}.eyebrow{display:block;font-size:clamp(13px,1.2vw,19px);margin-bottom:.9em}.service-intro p{margin-top:1em}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:14px;padding-left:2vw;text-align:center}.service-grid svg{display:block;width:clamp(35px,4vw,64px);height:auto;margin:0 auto 8px;color:var(--olive)}.service-grid h3{text-transform:uppercase;font-size:clamp(15px,1.55vw,24px);line-height:1.15;margin-bottom:.3em}.service-grid p,.service-intro p{font-size:clamp(14px,1.25vw,20px)}.center{text-align:center;margin-top:3.4vw}.statement{text-align:center;color:var(--paper);padding:4.6vw 0;background:linear-gradient(#686a5db8,#686a5db8),url(/assets/banner.webp) center/cover}.statement h2{color:inherit;font-size:clamp(25px,2.5vw,43px);margin-bottom:.65em}.statement p{font-size:clamp(16px,1.65vw,26px);max-width:39em;margin:auto}.portfolio{padding:5vw 0 3.8vw}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.65vw;margin-top:4vw}.tile{border:0;padding:0;background:transparent;overflow:hidden;display:block}.tile img{display:block;width:100%;aspect-ratio:1.22;object-fit:cover;transition:transform .24s}.tile:hover img{transform:scale(1.045)}.tile:nth-child(10){display:none}.contact{background:var(--olive);color:var(--paper);padding:5.5vw 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center}.contact h2{color:inherit;text-transform:none;font-size:clamp(29px,3.25vw,56px)}.contact p{margin:1em 0;font-size:clamp(16px,1.65vw,25px)}address{display:grid;gap:.65em;border-left:1px solid #ffffff80;padding:1.5em 0 1.5em 2em;font-style:normal}footer{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding-block:3vw}footer .brand{font-size:12px}footer p{text-align:right}dialog{border:0;padding:clamp(20px,4vw,50px);max-width:min(94vw,720px);color:var(--ink);background:var(--paper);box-shadow:0 15px 60px #0005}dialog::backdrop{background:#292c24bb}.close{position:absolute;top:4px;right:8px;border:0;background:var(--paper);color:var(--ink);width:42px;height:42px;border-radius:50%;font-size:26px}dialog h2{font-size:clamp(26px,4vw,43px);padding-right:25px}dialog h3{font-size:24px;margin-top:20px}dl div{display:flex;justify-content:space-between;gap:20px;padding:.5em 0;border-bottom:1px solid #73756855}dd{margin:0;text-align:right}#photo-dialog{width:min(94vw,840px);max-width:none;padding:0}#photo-dialog img{width:100%;max-height:72vh;object-fit:contain;display:block;background:#262721}.photo-controls{display:flex;align-items:center;justify-content:space-between;padding:12px;gap:12px}:focus-visible{outline:2px solid #b6924a;outline-offset:4px}
@media(max-width:1100px){.hero{min-height:78vw}.hero h1{font-size:5.55vw}.wrap{width:84.5%}.hero header{width:95%}.service-layout{grid-template-columns:35% 1fr;align-items:center}.service-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px;padding-left:3vw}.service-intro{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.gallery{grid-template-columns:repeat(2,1fr);gap:2.2vw}.tile:nth-child(10){display:block}.tile img{aspect-ratio:1.33}.statement{padding:6vw 0}}
@media(max-width:620px){.wrap,.hero header{width:88%}.hero{min-height:clamp(635px,179vw,760px);background:linear-gradient(90deg,#646658a0,#64665818),url(/assets/hero.webp) center/cover}.hero header{grid-template-columns:1fr auto}.header-actions{display:none}.menu-toggle{display:block;background:none;color:inherit;border:0;font-size:23px;min-width:44px;min-height:44px}.hero nav{display:none;position:absolute;top:100%;right:0;z-index:2;background:var(--ink);padding:18px;flex-direction:column;align-items:stretch;min-width:150px}.hero nav.open{display:flex}.hero nav a{padding:8px}.hero-copy{justify-content:flex-start;padding-top:clamp(95px,15vw,125px);padding-bottom:70px}.hero h1{font-size:clamp(34px,8.6vw,50px);text-wrap:initial}.hero h1 br{display:none}.hero p{margin:.45em 0 1em}.actions{flex-direction:column;width:100%;gap:10px}.actions .button{width:100%;min-height:48px}.services,.portfolio,.contact{padding:58px 0}.service-layout{display:block}.service-intro{border:0;border-bottom:1px solid var(--olive);padding:0 0 15px}.service-intro p{max-width:18em}.service-grid{grid-template-columns:1fr;padding:24px 0 0;gap:26px}.service-grid svg{width:49px}.service-grid h3{font-size:20px}.center{margin-top:34px}.statement{padding:56px 0}.gallery{grid-template-columns:1fr;gap:14px;margin-top:30px}.tile:nth-child(n){display:none}.tile:nth-child(2),.tile:nth-child(5),.tile:nth-child(1),.tile:nth-child(7){display:block}.tile:nth-child(2){order:-3}.tile:nth-child(5){order:-2}.tile:nth-child(1){order:-1}.tile img{aspect-ratio:1.42}.contact-grid{grid-template-columns:1fr;gap:22px}address{border-left:0;border-top:1px solid #ffffff80;padding:20px 0 0}footer{display:flex;flex-direction:column;padding:25px 0;gap:12px}footer .brand{display:none}footer p{text-align:center;font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

@media (prefers-reduced-motion: no-preference) {
  @keyframes rise-in {
    from { opacity: .25; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .hero-copy > * {
    animation: rise-in 680ms cubic-bezier(.22, 1, .36, 1) both;
  }

  .hero-copy > p { animation-delay: 100ms; }
  .hero-copy > .actions { animation-delay: 190ms; }
  dialog[open] { animation: rise-in 280ms cubic-bezier(.22, 1, .36, 1); }
  .button { transition: filter 180ms ease, transform 180ms ease; }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:hover { transform: translateY(-2px); }
  .tile img { transition: transform 420ms cubic-bezier(.22, 1, .36, 1); }
  .tile:hover img, .tile:focus-visible img { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
  .tile:hover img { transform: none; }
}

.brand img { display: block; width: clamp(145px, 16vw, 240px); max-width: 100%; height: auto; }
footer .brand img { width: clamp(115px, 10vw, 165px); }
.hero {
  background: linear-gradient(90deg, #4c4e40bd, #4c4e4060 49%, #4c4e401c), url(/assets/hero.webp) center / cover no-repeat, var(--olive);
}
@media (max-width: 620px) {
  .hero { background-position: center, 67% center; }
}


.contact address > * { display: flex; align-items: center; gap: 12px; font-weight: 600; overflow-wrap: anywhere; }
.contact address svg { width: 22px; height: 22px; flex: 0 0 22px; }

.header-actions .social { flex: 0 0 34px; }
.header-actions .social svg { width: 18px; height: 18px; }
.header-actions .button { white-space: nowrap; }
a.social:hover { background: #73756830; }
@media (max-width: 950px) {
  .pricing-header .header-actions { gap: 6px; }
  .pricing-header header { gap: 12px; }
  .pricing-header nav { gap: 12px; }
}
@media (max-width: 760px) {
  .pricing-header .header-actions { display: none; }
}

@media (min-width: 621px) and (max-width: 1100px) {
  .contact { padding-block: 52px; }
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .contact-grid h2 { max-width: 22ch; }
  .contact-grid address {
    border-left: 0;
    border-top: 1px solid #ffffff80;
    padding: 23px 0 0;
    gap: 16px;
  }
  footer.wrap { display: flex; flex-direction: column; gap: 14px; padding-block: 28px; }
  footer .brand { display: none; }
  footer nav { justify-content: center; flex-wrap: wrap; }
  footer p { text-align: center; }
}

@media (prefers-reduced-motion: no-preference) {
  .home-page .hero { position: relative; isolation: isolate; overflow: hidden; }
  .home-page .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: inherit;
    animation: hero-photo-zoom 12s ease-out both;
    pointer-events: none;
  }
  .home-page .hero header { animation: rise-in 650ms ease-out both; }
  .home-page .hero-copy > * { animation-duration: 900ms; }
  .home-page .hero-copy > h1 { animation-delay: 120ms; }
  .home-page .hero-copy > p { animation-delay: 260ms; }
  .home-page .hero-copy > .actions { animation-delay: 400ms; }
  .home-page .awaiting-reveal:not(:focus-within) { opacity: 0; }
  @keyframes hero-photo-zoom {
    from { transform: scale(1); }
    to { transform: scale(1.075); }
  }
}
