@font-face{font-family:Manrope;src:url('/assets/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}@font-face{font-family:Literata;src:url('/assets/literata.woff2') format('woff2');font-weight:400 600;font-display:swap}@font-face{font-family:Literata;src:url('/assets/literata-italic.woff2') format('woff2');font-weight:400 600;font-style:italic;font-display:swap}
:root{--paper:#f3f0ea;--ink:#30352e;--muted:#73776d;--line:#cfcec5;--accent:#626a50}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:15px;line-height:1.65}body.locked{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block}button{border:0}h1,h2,h3,p{margin:0}h1,h2{font-weight:400;letter-spacing:-.055em;line-height:1.12}h1{font-size:clamp(65px,7.5vw,122px)}h2{font-size:clamp(39px,4vw,66px)}em{font-family:Literata,Georgia,serif;font-weight:400;letter-spacing:-.065em}h3{font-weight:500;line-height:1.35;letter-spacing:-.025em}p{color:var(--muted)}.header{height:98px;margin:0 4.8%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.brand{display:inline-flex;gap:9px;align-items:baseline;font-weight:500;font-size:36px;line-height:1;letter-spacing:-.08em}.brand span{font-size:14px;letter-spacing:0;font-weight:400}.header nav{display:flex;gap:32px;font-size:13px}.header a:hover,.text-link:hover{color:var(--accent)}.header-contact{font-size:13px}.header-contact span{margin-left:24px}.menu-toggle{display:none;background:none}.hero{padding:38px 4.8% 0}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:600;color:var(--accent)}.hero-top{display:flex;justify-content:space-between;margin-bottom:33px}.small-note{font-size:12px;color:var(--muted)}.hero h1{max-width:1100px}.hero h1 em{padding-left:15vw}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin:29px 0 35px}.hero-bottom p{font-size:14px;line-height:1.7}.round-link{display:flex;align-items:center;gap:24px;font-size:12px}.round{border:1px solid var(--line);border-radius:100%;width:52px;height:52px;display:grid;place-items:center;font-size:24px;transition:background .2s}.round-link:hover .round{background:var(--ink);color:var(--paper)}.hero-image{position:relative}.hero-image>img{width:100%;height:clamp(360px,48vw,740px);object-fit:cover;object-position:center 53%}.image-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:20px;padding:55px 24px 20px;color:white;background:linear-gradient(transparent,#0007);font-size:12px}.section{padding:105px 4.8%}.intro{display:grid;grid-template-columns:1fr 2.1fr;gap:40px}.intro h2{margin-bottom:32px}.intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:42px;font-size:14px;max-width:850px}.facts{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:25px;gap:20px}.facts strong{font-size:28px;letter-spacing:-.04em;font-weight:400;display:block}.facts span{color:var(--muted);font-size:11px}.projects{padding-top:28px}.section-top{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:38px}.section-top .eyebrow{margin-bottom:18px}.section-note{font-size:12px;padding-bottom:5px}.filters{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}.filters button{background:none;border:1px solid var(--line);border-radius:50px;padding:9px 20px;font-size:12px;transition:.2s}.filters button.active,.filters button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.project-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:34px;row-gap:48px}.project-card{min-width:0;display:block}.project-card .photo-wrap{overflow:hidden;position:relative;background:#e5e1d8}.project-card img{width:100%;height:clamp(300px,37vw,610px);object-fit:cover;transition:transform .6s}.project-card:nth-child(4n+2){margin-top:80px}.project-card:nth-child(4n+3){margin-top:-40px}.project-card:hover img{transform:scale(1.035)}.project-card .photo-count{position:absolute;right:15px;bottom:15px;background:#f3f0eaec;padding:5px 10px;font-size:10px;border-radius:20px}.project-card .card-meta{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.07em;color:var(--muted);margin:15px 0 6px;text-transform:uppercase}.project-card h3{font-size:23px;display:flex;justify-content:space-between;gap:10px}.project-card h3 span{font-size:22px;font-weight:400}.outline{background:none;border:1px solid var(--line);padding:15px 30px;min-width:250px;margin:52px auto 0;display:flex;justify-content:space-between;gap:40px;font-size:12px}.outline:hover{background:var(--ink);color:var(--paper)}.outline[hidden]{display:none}.quote{padding:90px 20px 100px;text-align:center;background:#e6e5dc}.quote .eyebrow{margin-bottom:28px}.quote h2{font-size:clamp(46px,5.8vw,90px)}.quote>p:last-child{font-size:13px;margin-top:27px}.services{display:grid;grid-template-columns:1.1fr 1fr;gap:8%}.services .eyebrow{margin-bottom:25px}.services-intro{max-width:370px;margin:28px 0;font-size:14px}.text-link{display:inline-block;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:6px}.steps article{display:flex;gap:25px;padding:29px 0;border-top:1px solid var(--line)}.steps article>span{font-size:11px;color:var(--accent);padding-top:4px}.steps h3{font-size:22px;margin-bottom:10px}.steps p{font-size:13px}.steps a{font-size:12px;display:inline-block;margin-top:12px;border-bottom:1px solid var(--line)}.detail-banner{display:grid;grid-template-columns:1fr 1fr;background:#deddd1}.detail-banner img{height:660px;width:100%;object-fit:cover;object-position:center 57%}.detail-banner>div{display:flex;flex-direction:column;justify-content:center;padding:10% 16%}.detail-banner h2{margin:28px 0}.detail-banner p:not(.eyebrow){font-size:13px}.detail-banner .text-link{align-self:start;margin-top:27px}.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.journal-grid img{width:100%;height:310px;object-fit:cover;transition:filter .2s}.journal-grid a:hover img{filter:brightness(.92)}.journal-grid span{display:block;font-size:9px;letter-spacing:.14em;margin:18px 0 9px;color:var(--muted)}.journal-grid h3{font-size:18px}.faq{display:grid;grid-template-columns:1fr 2.1fr;gap:40px;padding-top:5px}.faq h2{margin-bottom:38px}.faq details{border-top:1px solid var(--line);padding:21px 0}.faq summary{font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:25px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-size:23px;line-height:1}.faq details[open] summary:after{content:'−'}.faq details p{font-size:14px;margin-top:15px;max-width:650px}.contacts{background:#363d32;color:var(--paper);padding:80px 4.8%}.contacts .eyebrow{color:#bec6b1;margin-bottom:30px}.contacts h2{font-size:clamp(43px,5.6vw,86px)}.contact-row{margin-top:65px;border-top:1px solid #ffffff30;padding-top:30px;display:flex;justify-content:space-between;align-items:start;gap:30px}.contact-phone{font-size:clamp(24px,3.2vw,48px);letter-spacing:-.04em}.contact-row>div>a{font-size:18px}.contact-row p{font-size:12px;color:#bec6b1;margin-top:8px}.contact-actions{display:flex;gap:35px;align-items:center;margin-top:38px;font-size:12px;flex-wrap:wrap}.solid{display:inline-block;background:var(--paper);color:var(--ink);padding:16px 25px;font-size:12px}.solid:hover{background:#d6dac9}footer{padding:32px 4.8%;display:flex;justify-content:space-between;align-items:center;gap:25px}footer .brand{font-size:30px}footer>span,footer>a:last-child{font-size:10px;color:var(--muted)}.skip{position:fixed;left:20px;top:-100px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}dialog{border:0;background:var(--paper);color:var(--ink);max-width:none;width:100%;height:100%;max-height:100%;margin:0;padding:0;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#252b25cc}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:22px 4.8%;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.dialog-top button{background:transparent;font-size:12px;display:flex;align-items:center;gap:20px}.dialog-top button span{font-size:32px}.dialog-body{max-width:1150px;padding:50px 25px 70px;margin:auto}.dialog-body h2{margin:18px 0 25px}.dialog-body>p:not(.eyebrow){white-space:pre-line;font-size:14px;max-width:780px;margin-bottom:35px}.dialog-body .solid{background:var(--ink);color:var(--paper);margin-top:30px}#dialog-images{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}#dialog-images figure{margin:0}#dialog-images img{width:100%;height:auto;background:#e6e1d8}#dialog-images figcaption{font-size:10px;color:var(--muted);margin-top:6px}#dialog-images img.low-res{max-width:510px;margin:auto}
@media(min-width:1800px){body{max-width:1800px;margin:auto}}@media(max-width:900px){.header nav{gap:18px}.header-contact{display:none}.intro,.faq{grid-template-columns:1fr 3fr;gap:24px}.intro-copy{gap:24px}.services{gap:5%;grid-template-columns:1fr 1fr}.detail-banner>div{padding:12%}.detail-banner img{height:560px}.journal-grid img{height:240px}.hero h1 em{padding-left:8vw}}
@media(max-width:600px){html{scroll-padding-top:20px}.header{height:78px;position:relative}.brand{font-size:32px}.header nav{display:none;position:absolute;left:-5.3%;right:-5.3%;top:77px;background:var(--paper);z-index:4;padding:28px 8%;border-bottom:1px solid var(--line);flex-direction:column;font-size:20px}.header nav.open{display:flex}.menu-toggle{display:flex;align-items:center;gap:18px;font-size:12px;padding:10px 0}.hero{padding-top:26px}.hero-top{margin-bottom:30px}.hero .eyebrow{font-size:8px;letter-spacing:.1em}.small-note{display:none}h1{font-size:clamp(46px,11.7vw,72px);letter-spacing:-.06em}.hero h1 em{padding-left:0}.hero-bottom{margin:25px 0;gap:16px;align-items:end}.hero-bottom p{font-size:11px}.round-link{gap:10px;font-size:10px}.round{height:38px;width:38px;font-size:20px}.hero-image>img{height:430px;object-position:43% center}.image-caption{padding:50px 14px 15px;font-size:9px;gap:10px}.section{padding:65px 5%}.intro,.faq{display:block}.intro>.eyebrow,.faq>.eyebrow{margin-bottom:24px}h2{font-size:39px}.intro-copy{grid-template-columns:1fr;gap:16px;font-size:13px}.facts{margin-top:30px;padding-top:20px;gap:12px}.facts strong{font-size:21px}.facts span{font-size:9px}.projects{padding-top:8px}.section-top{display:block;margin-bottom:25px}.section-note{margin-top:20px;font-size:11px}.filters{gap:6px;margin-bottom:25px}.filters button{font-size:10px;padding:8px 12px}.project-grid{gap:30px;grid-template-columns:1fr}.project-card:nth-child(n){margin-top:0}.project-card img{height:450px}.project-card h3{font-size:23px}.project-card .card-meta{font-size:9px}.outline{margin-top:35px}.quote{padding:65px 5%}.quote h2{font-size:47px}.quote>p:last-child{font-size:11px}.quote br{display:none}.services{display:block}.steps{margin-top:36px}.steps article{padding:23px 0}.steps h3{font-size:21px}.detail-banner{grid-template-columns:1fr}.detail-banner img{height:440px}.detail-banner>div{padding:45px 8% 50px}.journal .section-top .text-link{margin-top:23px}.journal-grid{grid-template-columns:1fr;gap:30px}.journal-grid img{height:320px}.journal-grid span{margin-top:13px}.faq{padding-top:10px}.faq h2{margin-bottom:25px}.faq summary{font-size:14px}.faq details p{font-size:13px}.contacts{padding:60px 5%}.contacts h2{font-size:43px}.contact-row{display:block;margin-top:38px}.contact-phone{font-size:30px}.contact-row>div{margin-top:24px}.contact-row>div>a{font-size:17px}.contact-actions{gap:23px;margin-top:28px}.contact-actions .solid{width:100%;text-align:center}footer{flex-wrap:wrap;padding:25px 5%}footer>span{order:3;width:100%}.dialog-body{padding:32px 5% 50px}.dialog-top{padding:17px 5%}.dialog-body h2{font-size:34px}#dialog-images{grid-template-columns:1fr;gap:18px}.dialog-body>p:not(.eyebrow){font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Persistent navigation and a unified photographic opening. */
html { scroll-padding-top: 118px; }
.header {
  position: sticky;
  top: 0;
  z-index: 20;
  margin: 0;
  padding: 0 4.8%;
  background: var(--paper);
  box-shadow: 0 3px 18px #30352e08;
}
.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(620px, calc(100svh - 98px), 850px);
  padding: 80px 4.8% 110px;
  color: #fffdf7;
  background: #55584d;
}
.hero-image { position: absolute; inset: 0; z-index: -1; }
.hero-image > img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; }
.hero-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #151b16b8 0%, #151b1680 55%, #151b1626 100%), linear-gradient(0deg, #151b1666, transparent 35%);
  pointer-events: none;
}
.hero-content { width: 100%; position: relative; }
.hero-top { margin-bottom: 30px; }
.hero .eyebrow { color: #e4e6da; }
.hero h1 { font-size: clamp(64px, 6.6vw, 108px); max-width: 1100px; }
.hero h1 em { padding-left: 0; }
.hero-bottom { flex-direction: column; align-items: flex-start; gap: 30px; margin: 28px 0 0; }
.hero-bottom p { color: #f1f0e9; font-size: 15px; line-height: 1.8; }
.hero .round-link {
  border: 1px solid #ffffffa6;
  border-radius: 40px;
  padding: 11px 22px;
  gap: 25px;
  font-size: 12px;
  background: #ffffff08;
  transition: background .2s;
}
.hero .round { border: 0; width: auto; height: 28px; font-size: 23px; }
.hero .round-link:hover { background: #ffffff20; }
.hero .round-link:hover .round { background: none; color: inherit; }
.hero a:focus-visible { outline-color: #fffdf7; }
.hero .image-caption {
  z-index: 1;
  background: none;
  padding: 24px 4.8%;
  color: #f1f0e9;
}
@media (max-width: 900px) {
  .hero h1 { font-size: clamp(55px, 7.5vw, 70px); }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 98px; }
  .header { position: sticky; height: 78px; }
  .header nav { left: 0; right: 0; top: 77px; }
  .hero {
    min-height: clamp(580px, calc(100svh - 78px), 780px);
    padding: 65px 5% 105px;
  }
  .hero-top { margin-bottom: 26px; }
  .hero .eyebrow { font-size: 8px; line-height: 1.8; letter-spacing: .1em; }
  .hero h1 { font-size: clamp(42px, 11.5vw, 64px); line-height: 1.15; }
  .hero h1 em { padding-left: 0; }
  .hero-bottom { margin-top: 25px; gap: 26px; align-items: flex-start; }
  .hero-bottom p { font-size: 12px; line-height: 1.8; }
  .hero .round-link { font-size: 11px; padding: 10px 20px; }
  .hero-image > img { height: 100%; object-position: 48% center; }
  .hero-image::after { background: linear-gradient(90deg, #151b16b8, #151b1673), linear-gradient(0deg, #151b1666, transparent 45%); }
  .hero .image-caption { padding: 20px 5%; font-size: 9px; }
}
