html,body{max-width:100%;overflow-x:hidden}
body.menu-open{overflow:hidden}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #9f7b4f;outline-offset:4px}
.menu-toggle,.inner-menu{min-width:44px;min-height:44px;cursor:pointer;color:inherit}
.inner-menu:after{content:'Menu';font:600 10px var(--ui);text-transform:uppercase;letter-spacing:.12em}
.contact-form input,.contact-form select,.contact-form textarea,.project-form input,.project-form select,.project-form textarea{min-height:44px}
.contact-form textarea,.project-form textarea{min-height:120px;resize:vertical}
.contact-form button,.project-form button{min-height:52px;align-items:center;cursor:pointer}
.journal-feature img,.journal-card img,.article-hero img{object-position:center}
.journal-card{transition:transform .3s ease,box-shadow .3s ease}
.journal-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(20,21,18,.1)}
.journal-topics a{min-height:44px;display:inline-flex;align-items:center}
.article-body{overflow-wrap:anywhere}
.article-related{margin-top:52px;padding-top:20px;border-top:1px solid var(--line);font-size:14px!important}
.article-related a{border-bottom:1px solid var(--bronze);padding-bottom:2px}

@media(max-width:900px){
  .mobile-menu,.inner-mobile{inset:70px 0 0;min-height:calc(100dvh - 70px);overflow-y:auto;visibility:hidden;z-index:19;padding-top:40px}
  .mobile-menu.open,.inner-mobile.open{visibility:visible}
  .mobile-menu a,.inner-mobile a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid rgba(127,127,127,.28);font-size:clamp(24px,5vw,34px)}
  .page-hero{gap:48px}
  .page-hero-copy{max-width:620px}
  .journal-feature{padding-left:5vw;padding-right:5vw}
  .journal-feature>a{min-height:0}
  .journal-feature img{height:auto;min-height:0;aspect-ratio:16/10}
  .journal-grid{gap:14px}
  .journal-card img{height:auto;aspect-ratio:4/3}
  .article-head h1{font-size:clamp(48px,10vw,78px)}
  .article-hero{height:auto;min-height:0;aspect-ratio:16/10}
  .article-next a{gap:24px}
  .contact-page{gap:55px}
}

@media(max-width:560px){
  .hero{min-height:620px;height:100svh}
  .hero-copy{top:17%}
  .hero h1{font-size:clamp(54px,17vw,70px);line-height:.82;margin-top:8vh}
  .hero-bottom{margin-top:7vh;gap:18px}
  .hero-bottom>p{max-width:70%;line-height:1.5}
  .section-pad{padding:76px 5vw}
  .display{font-size:clamp(38px,12vw,48px)}
  .image-break,.work-image,.page-image,.build-image{height:auto;min-height:0;aspect-ratio:4/5}
  .work-panel{padding:72px 5vw}
  .service>a{min-width:44px;min-height:44px;display:grid;place-items:center}
  .quote-section blockquote{font-size:clamp(42px,13vw,60px)}
  .faq-grid{margin-top:48px}
  .accordions summary{min-height:48px;align-items:center}
  .contact{padding:76px 5vw}
  .contact h2{font-size:clamp(42px,13vw,58px)}
  .contact-form input,.contact-form select,.contact-form textarea,.project-form input,.project-form select,.project-form textarea{font-size:16px}
  .project-gallery figure{overflow:hidden}
  .gallery-large,.gallery-tall{height:auto;min-height:0;aspect-ratio:4/5}
  footer{gap:45px}
  .inner-mobile{padding:28px 5vw}
  .page-hero{padding-top:112px;gap:34px}
  .page-hero h1{font-size:clamp(48px,15vw,64px);line-height:.86;letter-spacing:-.06em;margin-top:30px}
  .page-hero-copy p{font-size:15px;line-height:1.65}
  .image-label{max-width:90%;padding:16px 18px}
  .section-tag{line-height:1.6}
  .copy .lead{font-size:20px}
  .card{padding:28px 24px;min-height:0}
  .card h3{margin:48px 0 14px}
  .cta-band h2{font-size:clamp(42px,13vw,58px)}
  .cta-band a{width:104px;height:104px}
  .inner-footer-top{grid-template-columns:1fr;gap:34px}
  .inner-footer-logo{grid-column:auto}
  .inner-footer-col a{min-height:32px;display:flex;align-items:center}
  .project-grid{padding-left:5vw;padding-right:5vw}
  .project-card,.project-card.large,.project-card.tall{height:auto;min-height:0;aspect-ratio:4/5}
  .project-card>div{left:20px;right:20px;bottom:20px}
  .project-card h2{font-size:34px}
  .project-facts>div{padding:22px 5vw}
  .project-gallery-detail img{height:auto;min-height:0;aspect-ratio:4/5}
  .contact-page-copy h1{font-size:clamp(48px,14vw,64px)}
  .contact-meta{margin-top:42px}
  .journal-feature img{aspect-ratio:4/3}
  .journal-feature-copy{padding:40px 6vw 46px}
  .journal-feature-copy h2{font-size:38px;margin:28px 0}
  .journal-card img{height:auto;aspect-ratio:4/3}
  .journal-card>div{padding:24px}
  .journal-card h2{font-size:23px}
  .journal-topics{padding:58px 5vw}
  .article-head{padding-top:58px}
  .article-head h1{font-size:clamp(42px,12vw,54px);line-height:.98;margin:34px 0 42px}
  .article-head>div{justify-content:space-between;gap:18px}
  .article-hero{aspect-ratio:4/3}
  .article-body{padding-top:58px}
  .article-body p,.article-body li{font-size:16px;line-height:1.75}
  .article-body .article-lead{font-size:22px}
  .article-body h2{font-size:28px;margin-top:54px}
  .article-body blockquote{font-size:25px;margin:48px 0;padding-left:22px}
  .article-note{padding:24px;margin-top:48px}
  .article-next a{font-size:27px;line-height:1.2}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .mobile-menu,.inner-mobile,.journal-card{transition:none}
  .journal-card:hover{transform:none}
}
