/* 629&CO image-led editorial layer */
.home .site-header{color:#fff}.home .site-header.scrolled{color:#111}.site-header .nav-shell{width:auto;margin:0 16px}.brand{display:flex;align-items:flex-start;justify-content:flex-start;margin:0;padding:0;font-size:1.05rem;line-height:1;letter-spacing:-.065em}.brand>a:not(.custom-logo-link){display:block}.brand span{font-weight:500}.brand .custom-logo-link{display:flex;align-items:flex-start;justify-content:flex-start;margin:0;padding:0;border:0;line-height:0}.brand .custom-logo{display:block;max-height:32px;width:auto;margin:0;padding:0;object-position:left top}.micro-label{font-size:.68rem;line-height:1.1;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.footer-links{display:flex;align-items:center;gap:30px}.footer-menu{display:flex;gap:20px;list-style:none;margin:0;padding:0}.footer-menu a{font-size:.75rem;font-weight:700;text-transform:uppercase}.footer-menu a:hover{color:#fff}
.hero-editorial{position:relative;min-height:100svh;background:#151515 center/cover no-repeat;color:#fff;overflow:hidden}.hero-editorial:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#151515 0%,#2c2c2c 50%,#0a0a0a 100%);z-index:-2}.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.18),rgba(0,0,0,.05) 48%,rgba(0,0,0,.28));pointer-events:none}.hero-utility{position:absolute;z-index:2;top:82px;left:24px;right:24px;display:flex;justify-content:center;gap:30px;font-size:.62rem;font-weight:800;letter-spacing:.03em}.hero-utility span:last-child{position:absolute;right:0}.hero-copy{position:absolute;z-index:2;left:24px;bottom:32%;width:205px}.hero-copy p{font-size:.7rem;line-height:1.12;font-weight:800;text-transform:uppercase;margin:18px 0}.text-link{display:inline-block;font-size:.7rem;font-weight:900;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:2px}.text-link:hover{opacity:.6}.text-link.dark{color:#111}.hero-wordmark{position:absolute;z-index:2;left:1.1vw;right:1.1vw;bottom:-2.8vw;white-space:nowrap;font-size:clamp(6rem,22.1vw,23rem);font-weight:900;line-height:.76;letter-spacing:-.105em}.hero-wordmark span{font-weight:600}
.manifesto{background:#fff}.manifesto-grid{display:grid;grid-template-columns:1fr 4.5fr 1.2fr;gap:40px;align-items:start}.manifesto-grid h1{font-size:clamp(3.2rem,7vw,7.5rem);max-width:none;margin:0;text-transform:uppercase}.manifesto-grid p{font-size:.8rem;line-height:1.25;font-weight:700;text-transform:uppercase;margin-top:5px}.work-section{padding:0 0 110px}.work-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start;padding-bottom:24px}.work-heading h2{font-size:clamp(2rem,4vw,4rem);margin:0;text-transform:uppercase}.editorial-projects{display:grid;grid-template-columns:1fr 1fr}.editorial-project{min-width:0}.editorial-project:nth-child(3n){grid-column:1/-1}.editorial-image{height:min(74vw,820px);overflow:hidden;background:#e8e8e8}.editorial-project:nth-child(3n) .editorial-image{height:min(64vw,900px)}.editorial-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.88);transition:transform .8s cubic-bezier(.2,.75,.25,1),filter .35s}.editorial-project:hover img{transform:scale(1.025);filter:saturate(1)}.project-placeholder{height:100%;display:flex;align-items:center;justify-content:center;background:#161616;color:#fff;font-size:clamp(3rem,10vw,10rem);font-weight:900;letter-spacing:-.09em}.editorial-meta{display:grid;grid-template-columns:1fr 2fr 1fr;gap:16px;align-items:start;padding:14px 20px 44px;font-size:.62rem;font-weight:800;text-transform:uppercase}.editorial-meta h3{font-size:1rem;line-height:1.1;letter-spacing:-.03em;text-align:center;margin:0}.editorial-meta span:last-child{text-align:right}
.split-heading{display:grid;grid-template-columns:1fr 2fr;margin-bottom:75px}.split-heading h2{margin:0;text-transform:uppercase}.service-list{border-top:1px solid #111}.service-list .service{display:grid;grid-template-columns:1fr 2fr 2fr;gap:25px;padding:30px 0;border:0;border-bottom:1px solid #bbb;background:transparent}.service-list .service:hover{transform:none;border-color:#111}.service-list .service h3{font-size:clamp(1.7rem,3vw,3rem);text-transform:uppercase;margin:0}.service-list .service p{font-size:.8rem;line-height:1.3;text-transform:uppercase;margin:4px 0 0;max-width:360px}.about{background:#fff}.about-grid{grid-template-columns:1.15fr .85fr}.about-copy .micro-label{margin-bottom:55px}.about-copy h2{text-transform:uppercase}.about-media{height:70vw;max-height:900px}.about-media .project-placeholder{font-size:clamp(2rem,6vw,7rem)}.contact h2{text-transform:uppercase}.contact .micro-label{margin-bottom:55px}.contact .button{border-radius:0}.site-footer{overflow:hidden;padding-top:40px}.footer-wordmark{font-size:clamp(5rem,20.5vw,22rem);font-weight:900;line-height:.78;letter-spacing:-.105em;color:#fff;white-space:nowrap;margin:0 1vw 55px}
@media(max-width:900px){.hero-utility{justify-content:flex-start}.hero-utility span:last-child{display:none}.hero-copy{bottom:28%}.manifesto-grid{grid-template-columns:1fr}.manifesto-grid h1{font-size:clamp(2.8rem,10vw,5.5rem)}.manifesto-grid p{max-width:400px}.work-heading,.split-heading{grid-template-columns:1fr;gap:28px}.editorial-projects{grid-template-columns:1fr}.editorial-project:nth-child(3n){grid-column:auto}.editorial-image,.editorial-project:nth-child(3n) .editorial-image{height:115vw;max-height:820px}.service-list .service{grid-template-columns:50px 1fr}.service-list .service p{grid-column:2}.about-grid{grid-template-columns:1fr}.about-media{height:120vw}.editorial-meta{grid-template-columns:1fr 1fr}.editorial-meta h3{text-align:right}.editorial-meta span:last-child{display:none}}
@media(max-width:800px){.site-header .nav-shell{margin:0 12px}.home .site-header .nav-toggle{color:#fff}.home .site-header.scrolled .nav-toggle,.home.menu-open .site-header .nav-toggle{color:#111}.home .nav-menu{color:#111}.footer-links{align-items:flex-start;flex-direction:column}.footer-menu{flex-direction:column;gap:8px}}
@media(max-width:560px){.hero-wordmark{font-size:23vw;bottom:-.5vw}.hero-copy{bottom:25%;width:190px}.manifesto.section{padding-top:95px}.work-heading{align-items:flex-start;flex-direction:column;gap:20px}.editorial-meta{padding-inline:14px}.service-list .service{padding:25px 0}.footer-wordmark{margin-bottom:35px}}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1)}.reveal.is-visible{opacity:1;transform:none}.about-grid.no-image{grid-template-columns:minmax(0,1fr)}.about-grid.no-image .about-copy{width:min(900px,100%);margin-left:auto}.about-grid.no-image .about-copy h2{max-width:12ch}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-wordmark{transform:none!important}.editorial-image img{transition:none}}
.brand .custom-logo{transition:filter .25s ease}.home .site-header.scrolled .custom-logo,.home.menu-open .site-header .custom-logo{filter:invert(1)}

/* Tablet and mobile navigation matches the bold section headings. */
@media(max-width:1024px){
  .site-header .nav-menu .menu a{
    font-family:Inter,ui-sans-serif,system-ui,sans-serif;
    font-weight:800;
    letter-spacing:-.055em;
    line-height:.98;
    text-transform:uppercase;
  }
}
@media(max-width:800px){
  .site-header .nav-menu .menu a{font-size:clamp(1.75rem,6vw,2.4rem)}
  .site-header .nav-menu{overflow-y:auto}
}

/* Keep the existing logo above the open navigation overlay. */
@media(max-width:1024px){
  .menu-open .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
  .menu-open .site-header .brand{position:relative;z-index:60;color:#111;max-width:calc(100% - 60px)}
  .menu-open .site-header .brand span{color:inherit}
  .menu-open .site-header .brand .custom-logo{max-width:100%;object-fit:contain}
}

/* Native scrolling, lightweight transitions and reliable anchor positioning. */
html{scroll-padding-top:90px;scrollbar-gutter:stable}
.site-header{transition:background-color .22s ease,color .22s ease,border-color .22s ease}
.reveal{transition:opacity .45s ease,transform .45s ease;transform:translateY(18px)}
.reveal.is-visible{transform:none}
@media(max-width:800px){
  .site-header,.site-header.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none}
  .site-header .brand{position:relative;z-index:60;max-width:calc(100% - 60px)}
  .site-header .nav-menu{display:block;opacity:0;visibility:hidden;pointer-events:none;overscroll-behavior:contain;transition:opacity .24s ease,visibility 0s linear .24s}
  .site-header .nav-menu.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
  .site-header .nav-menu .menu{transform:translateY(12px);transition:transform .24s ease}
  .site-header .nav-menu.open .menu{transform:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site-header,.site-header .nav-menu,.site-header .nav-menu .menu,.reveal,.editorial-image img,.brand .custom-logo{transition:none;transform:none}
}

/* Keep contact fields within the shared page gutters. */
.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact-grid>*,.contact form,.contact .form-grid,.contact .field{min-width:0;max-width:100%}
.contact .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact input,.contact textarea,.contact select,.contact .button{min-width:0;max-width:100%;box-sizing:border-box}
.contact .button,.contact label,.contact .notice{overflow-wrap:anywhere;white-space:normal}
@media(max-width:1024px){
  .contact .contact-grid{grid-template-columns:minmax(0,1fr);gap:38px}
  .contact form{width:100%}
}
@media(max-width:800px){
  .contact .form-grid{grid-template-columns:minmax(0,1fr)}
  .contact .field.full{grid-column:1/-1}
}
