/* Full-screen navigation and responsive refinements. */
html{scrollbar-gutter:stable}
.header .brand{flex-shrink:1;min-width:0}.header .monogram{flex-shrink:0}.brand-name{min-width:0}
.menu-sign{display:flex;align-items:center;min-width:0}.menu-sign span{line-height:1.25}.menu-close{flex-shrink:0}
:where(.wrap,.hero-title,.form-grid,.contact-layout,.about-layout,.process-step,.article-layout,.blog-feature)>*{min-width:0}
:where(h1,h2,h3,p,li,a){overflow-wrap:break-word}
.menu-glyph{position:relative;display:inline-block;width:25px;height:22px;flex-shrink:0}
.menu-glyph i{position:absolute;display:block;width:25px;height:1px;background:currentColor;left:0;top:7px;transition:transform .3s}
.menu-glyph i+ i{top:15px;width:18px;left:7px}
.is-close i{top:11px;transform:rotate(45deg)}.is-close i+ i{top:11px;left:0;width:25px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;padding:0;background:var(--paper);overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}
.mobile-menu[open]{display:flex;flex-direction:column;animation:menu-enter .4s cubic-bezier(.2,.7,.2,1) both}
.mobile-menu::backdrop{background:#242824;animation:menu-backdrop .3s both}
.mobile-menu.is-closing{animation:menu-leave .24s ease-in both;pointer-events:none}
.mobile-menu.is-closing::backdrop{animation:menu-backdrop .24s reverse both}
.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;padding:max(20px,env(safe-area-inset-top)) max(6%,env(safe-area-inset-right)) 20px max(6%,env(safe-area-inset-left));border-bottom:1px solid var(--line)}
.menu-sign{font-family:Georgia,serif;font-size:3.2rem;letter-spacing:-.09em;line-height:1}
.menu-sign span{font-size:1rem;letter-spacing:0;margin-left:14px}
.menu-close{min-height:48px;display:flex;align-items:center;gap:16px;padding:10px 0 10px 10px;font-size:.875rem}
.mobile-menu-body{display:grid;grid-template-columns:.75fr 1fr;gap:10%;align-items:center;flex:1 0 auto;padding:35px 6%;width:100%}
.mobile-menu-photo{position:relative;align-self:stretch;min-height:320px;max-height:640px}
.mobile-menu-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.mobile-menu-photo p{position:absolute;bottom:0;left:0;right:0;padding:70px 24px 24px;color:white;background:linear-gradient(transparent,#0009);font-family:Georgia,serif;font-size:2rem;line-height:1.15}
#mobile-navigation{display:flex;flex-direction:column;align-items:stretch;min-width:0}
#mobile-navigation a{position:relative;display:flex;align-items:baseline;gap:18px;padding:11px 0;border:0;font-family:Georgia,serif;font-size:clamp(1.9rem,4.6vw,3.5rem);letter-spacing:-.04em;line-height:1.2;min-height:48px;animation:menu-item .45s both;animation-delay:calc(.06s + var(--item)*.035s)}
#mobile-navigation a::before{content:attr(data-number);font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.05em;color:var(--muted);flex-shrink:0}
#mobile-navigation a[aria-current=page]{font-style:italic;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
#mobile-navigation .nav-contact{margin:15px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:clamp(1.6rem,3.8vw,2.7rem)}
#mobile-navigation .nav-contact>span{margin-left:auto;font-size:1.5rem;padding:0}
.mobile-menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-inline:6%;border-top:1px solid var(--line);padding:22px 0 max(22px,env(safe-area-inset-bottom));flex-shrink:0}
.mobile-menu-bottom>span:first-child{font-size:.75rem;letter-spacing:.1em}.mobile-menu-bottom>span:last-child{font-family:Georgia,serif;font-style:italic;font-size:1rem}
@keyframes menu-enter{from{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:translateY(0)}}
@keyframes menu-leave{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}
@keyframes menu-backdrop{from{opacity:0}to{opacity:1}}
@keyframes menu-item{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1150px){
  .header #navigation,.header #navigation.open{display:none}
  .menu-toggle{min-width:85px;min-height:48px;justify-content:space-between;flex-shrink:0}
  .contact-form input,.contact-form textarea,.contact-form select{font-size:1rem;min-width:0;max-width:100%}
  .header{gap:20px}
  .text-link,.light-link{min-height:44px}
  .process-faq{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}
  .footer>div>*,.contact-links>:not(p){min-height:44px}
}
@media(min-width:701px) and (max-width:1000px){
  .hero-title{left:51%;width:44%}.hero h1{font-size:clamp(3.1rem,7.6vw,4.8rem)}
  .home-intro{column-gap:28px}.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5%}
  .contact-layout h1{font-size:clamp(2.8rem,5.7vw,3.7rem)}
  .form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}
  .about-copy h1{font-size:clamp(2.8rem,5.7vw,3.7rem)}
}
@media(max-width:700px){
  .wrap{width:calc(100% - 40px)}
  .header{padding-inline:20px}.header .brand{gap:12px}
  .mobile-menu-top{padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right));padding-block:max(17px,env(safe-area-inset-top)) 17px}
  .mobile-menu-body{display:block;padding:24px max(24px,env(safe-area-inset-right)) 24px max(24px,env(safe-area-inset-left));flex:1 0 auto}
  .mobile-menu-photo{display:none}
  #mobile-navigation a{font-size:clamp(1.85rem,7.8vw,2.8rem);padding-block:10px;gap:20px;min-height:50px}
  #mobile-navigation .nav-contact{font-size:clamp(1.65rem,6.5vw,2.4rem);margin-top:13px;padding-top:20px}
  .mobile-menu-bottom{margin-inline:24px;flex-wrap:wrap;gap:8px;padding-top:17px}
  .mobile-menu-bottom>span:first-child{font-size:.7rem}.mobile-menu-bottom>span:last-child{font-size:.875rem}
  .hero{height:calc(100svh - 86px);min-height:590px}
  .hero-title{left:24px;width:calc(100% - 48px);bottom:125px}
  .hero h1{font-size:clamp(3.05rem,13vw,5.2rem)}
  .hero-label{left:24px}.hero-bottom{left:24px;font-size:.65rem}.hero-bottom>span{font-size:.6rem}
  .hero-controls{right:20px;bottom:24px}.hero-controls button{width:44px;height:44px}.hero-controls>span{margin-right:0}
  .home-intro h2,.process-preview-copy h2,.journal-heading h2,.film-copy h2,.process-faq h2{font-size:clamp(2.3rem,9vw,3.1rem)}
  .contact-teaser h2{font-size:clamp(2.35rem,8.9vw,3.6rem)}
  .page-head h1,.process-lead h1,.about-copy h1,.contact-layout h1{font-size:clamp(2.7rem,11vw,3.8rem)}
  .blog-heading h1{font-size:clamp(2.45rem,9vw,3rem)}.article-heading h1{font-size:clamp(2.2rem,8.5vw,2.8rem)}
  .process-step h2{font-size:clamp(1.85rem,7.2vw,2.5rem)}
  .process-mini a{grid-template-columns:34px minmax(0,1fr) 16px;gap:12px}.process-mini h3{font-size:1.35rem}
  .photo-meta{font-size:.75rem;flex-wrap:wrap}.photo-meta>span:last-child{margin-left:auto}
  .hero-title p{font-size:.875rem}.home-intro p:not(.eyebrow),.film-copy>p:not(.eyebrow){font-size:1rem}
  .footer{padding-bottom:max(40px,env(safe-area-inset-bottom));column-gap:15px}.footer p{font-size:.8125rem}.footer>div>*{font-size:.8125rem}
  .info-dialog{max-height:calc(100dvh - 24px);width:calc(100% - 24px);padding:65px 24px 25px}
  .lightbox{height:100dvh;max-height:100dvh;padding-top:max(65px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .lightbox>img{height:calc(100dvh - 145px)}.lightbox-tools{height:auto;min-height:50px;gap:8px}.lightbox-tools p{flex:1;min-width:0}.lightbox-tools button{min-width:44px;min-height:44px;flex-shrink:0}
  .page-bottom{align-items:flex-start;flex-wrap:wrap;gap:18px}.page-bottom>span{max-width:100%}
}
@media(max-width:380px){
  .header .brand-name{display:none}
  .header .brand-name{font-size:.875rem}.header .brand-name small{letter-spacing:.12em}.header .monogram{font-size:3rem}.header{gap:12px}.menu-toggle{min-width:75px}
  .menu-sign span{display:none}.mobile-menu-bottom>span:first-child{letter-spacing:.04em}
  .hero-bottom{bottom:80px}.hero-controls{left:20px;right:auto;bottom:20px}.hero-title{bottom:150px}
  .hero-title p{max-width:230px}.hero h1{font-size:3.05rem}
  .form-grid{grid-template-columns:minmax(0,1fr)}.full-field{grid-column:auto}
  .process-index nav{grid-template-columns:1fr}.process-step{grid-template-columns:1fr;gap:16px}
  
  .footer{display:block}.footer>div{margin:15px 0}.footer p{margin-top:10px}
}
@media(max-height:500px) and (max-width:1150px){
  .mobile-menu-top{padding-block:12px}.mobile-menu-body{padding-block:12px;display:block}.mobile-menu-photo{display:none}
  #mobile-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}
  #mobile-navigation a{font-size:1.65rem;padding-block:9px;min-height:44px}
  #mobile-navigation .nav-contact{font-size:1.65rem;margin:0;padding-top:9px;border:0}
  .mobile-menu-bottom{padding-block:12px}.menu-sign{font-size:2.3rem}
}
@media(prefers-reduced-motion:reduce){
  .mobile-menu[open],.mobile-menu.is-closing,.mobile-menu::backdrop,.mobile-menu.is-closing::backdrop,#mobile-navigation a{animation:none!important}
  .menu-glyph i{transition:none}
}
