.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.header nav {
  gap: 22px;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.search-toggle {
  display: grid;
  place-items: center;
  min-height: 44px;
  min-width: 44px;
  border-radius: 50%;
  background: #eeedf1;
}
.hero {
  background: #eae9e5;
  color: var(--ink);
}
.hero-image {
  object-position: 70% center;
}
.hero-shade {
  background: linear-gradient(
    90deg,
    #f7f7f5 2%,
    #f7f7f5ed 27%,
    #f7f7f56b 55%,
    transparent 77%
  );
}
.hero-copy {
  padding: 74px 60px;
  max-width: 770px;
}
.hero h1 {
  font-size: clamp(3.25rem, 5.2vw, 5.3rem);
  max-width: 750px;
  letter-spacing: -0.065em;
}
.hero-intro {
  color: #5e5b63;
  max-width: 420px;
}
.hero .button {
  background: var(--brand);
  color: white;
}
.hero-caption {
  position: absolute;
  bottom: 25px;
  right: 28px;
  background: #fffd;
  color: #4c4856;
  font-size: 11px;
  padding: 6px 10px;
  border-radius: 5px;
}
.brand-strip {
  position: relative;
  display: block;
  padding: 22px 48px;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.brand-track {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 45px;
  width: max-content;
  min-width: calc(100% + 110px);
  padding: 0 24px;
  animation: brand-loop 32s linear infinite;
}
.brand-track > a {
  width: 100px;
  flex: 0 0 100px;
}
.brand-strip .brand-logo,
.brand-strip a:nth-child(3) img {
  width: 100px;
  height: 44px;
  object-fit: contain;
}
.brand-strip:hover .brand-track,
.brand-strip:focus-within .brand-track,
.brand-strip.paused .brand-track {
  animation-play-state: paused;
}
.motion-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: #fafaf8;
  border: 1px solid var(--line);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  font-size: 11px;
  color: var(--brand);
}
@keyframes brand-drift {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(-100% + min(100vw - 150px, 1500px)));
  }
}
.compact-companies {
  background: #f0efed;
  border-radius: 24px;
  padding-top: 60px;
  padding-bottom: 60px;
  margin-bottom: 70px;
}
.company-grid {
  gap: 16px;
}
.company-card {
  min-height: 260px;
  padding: 20px 22px;
  background: #fafaf8;
  justify-content: flex-start;
}
.company-logo {
  height: 83px;
}
.company-logo .brand-logo {
  width: 128px;
  height: 57px;
}
.inspire-card .company-logo .brand-logo {
  width: 155px;
}
.company-card h3 {
  font-size: 20px;
  margin-bottom: 8px;
}
.company-card p {
  font-size: 14px;
  min-height: 0;
  margin-bottom: 18px;
}
.card-link {
  margin-top: auto;
}
.card-top {
  font-size: 10px;
}
.section {
  padding-top: 75px;
  padding-bottom: 75px;
}
.intro .text-link {
  margin-right: 25px;
}
.quality-panel {
  min-height: 590px;
}
.quality-copy {
  padding: 50px 42px;
}
.value-icon {
  width: 30px;
  height: 30px;
  object-fit: contain;
}
.footer-top {
  align-items: flex-start;
}
.footer-tagline {
  margin-top: 25px !important;
  font-size: 23px !important;
}
.company-contact {
  max-width: 550px;
}
.company-contact h3 {
  font-size: 24px;
  margin-bottom: 20px;
}
.company-contact address {
  font-style: normal;
  line-height: 1.7;
  margin-bottom: 20px;
  max-width: 420px;
}
.contact-number,
.contact-email {
  display: block;
  padding: 7px 0;
  font-size: 17px;
  overflow-wrap: anywhere;
}
.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.social-links a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-weight: 600;
  font-size: 17px;
  transition: transform 0.2s;
}
.social-links a:hover {
  transform: translateY(-3px);
}
.person-photo {
  width: 100%;
  height: 300px;
  object-fit: cover;
  object-position: top;
  border-radius: 14px;
  margin-bottom: 24px;
}
.person p {
  color: var(--muted);
}
.person .social-links {
  color: var(--brand);
}
.team-initials img {
  width: 60px;
  height: 60px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #eeedf1;
  margin-left: -10px;
}
.team-initials img:first-child {
  margin-left: 0;
}
.project-art.has-photo {
  padding: 0;
  background: #eeedf1;
}
.project-art.has-photo > img {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.project-art.has-photo .project-arrow {
  background: #fff;
  color: var(--brand);
  border: 0;
}
.project-cover {
  width: 100%;
  max-height: 620px;
  object-fit: cover;
  border-radius: 18px;
}
.project-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  margin: 30px 32px;
}
.project-gallery img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  border-radius: 16px;
}
.page-intro {
  max-width: 850px;
  margin: 0 32px 40px;
}
.prose {
  font-size: 17px;
  line-height: 1.8;
  color: var(--muted);
}
.company-contact-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid var(--line);
  padding: 17px 0;
  font-size: 15px;
}
.search-section {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 30px 80px;
}
.search-form {
  display: flex;
  gap: 12px;
  margin-bottom: 40px;
}
.search-form input {
  flex: 1;
  min-width: 0;
  padding: 18px 22px;
  border: 1px solid var(--line);
  border-radius: 60px;
  background: white;
  color: var(--ink);
}
.search-result {
  display: block;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.search-result h2 {
  font-size: 30px;
  margin-bottom: 12px;
}
.search-result p {
  color: var(--muted);
  margin-bottom: 0;
}
.search-result .eyebrow {
  display: block;
  margin-bottom: 12px;
}
.filter-form {
  display: flex;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 35px;
}
.filter-form select {
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: white;
  max-width: 100%;
  min-width: 200px;
}
.job-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
  padding: 30px;
  background: #f0efed;
  border-radius: 16px;
  margin-bottom: 18px;
}
.job-card h2 {
  font-size: 30px;
  margin: 14px 0;
}
.job-card p {
  margin: 0;
  color: var(--muted);
}
.job-card > span {
  font-size: 30px;
}
.empty-state {
  padding: 45px;
  background: #f0efed;
  border-radius: 18px;
}
.empty-state h2 {
  font-size: 32px;
}
.job-detail {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 60px;
  padding: 0 32px 75px;
}
.job-detail h2 {
  font-size: 30px;
  margin-top: 25px;
}
.apply-panel {
  background: #eeedf1;
  border-radius: 16px;
  padding: 30px;
  align-self: start;
}
.apply-panel .text-link {
  display: block;
  margin-top: 25px;
}
.preview-banner {
  background: #e5daff;
  color: #30234f;
  text-align: center;
  padding: 12px 20px;
  font-size: 14px;
}
.preview-banner a {
  text-decoration: underline;
  margin-left: 15px;
}
.inspirearcs-site footer {
  background: #163b6d;
}
.jobs-section {
  padding-top: 0;
}
input:focus-visible,
select:focus-visible {
  outline: 3px solid #9385c7;
  outline-offset: 3px;
}
@media (max-width: 1100px) {
  .header nav {
    gap: 14px;
    font-size: 13px;
  }
  .hero-copy {
    padding: 65px 40px;
  }
  .header-actions {
    gap: 10px;
  }
  .company-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .company-card {
    padding: 18px;
  }
  .company-card h3 {
    font-size: 18px;
  }
  .quality-copy {
    padding: 38px;
  }
  .company-logo .brand-logo {
    width: 115px;
  }
  .inspire-card .company-logo .brand-logo {
    width: 135px;
  }
}
@media (max-width: 900px) {
  .header nav {
    display: none;
  }
  .header .menu-toggle {
    display: block;
  }
  .company-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .job-detail {
    grid-template-columns: 1fr;
  }
  .hero h1 {
    font-size: 3.7rem;
  }
  .hero-copy {
    max-width: 680px;
  }
  .person-photo {
    height: 260px;
  }
}
@media (max-width: 680px) {
  .site-wrap {
    padding: 0 12px;
  }
  .header-actions {
    gap: 7px;
  }
  .header {
    height: 88px;
  }
  .hero {
    height: 620px;
    min-height: 0;
  }
  .hero-image {
    object-position: 67% center;
  }
  .hero-shade {
    background: linear-gradient(
      180deg,
      #f7f7f5fa 0%,
      #f7f7f5ef 32%,
      #f7f7f5a8 54%,
      #f7f7f508 83%
    );
  }
  .hero-copy {
    padding: 38px 24px;
  }
  .hero h1 {
    font-size: clamp(2.7rem, 10.2vw, 4rem);
  }
  .hero .eyebrow {
    font-size: 10px;
    margin-bottom: 22px;
  }
  .hero-intro {
    font-size: 15px;
    max-width: 320px;
  }
  .hero .button {
    padding: 15px 20px;
  }
  .hero-caption {
    right: 15px;
    bottom: 15px;
  }
  .brand-strip {
    padding: 18px 36px 18px 0;
  }
  .brand-track {
    min-width: 0;
    gap: 32px;
    padding: 0 15px;
    animation-duration: 25s;
  }
  .brand-track > a {
    width: 85px;
    flex-basis: 85px;
  }
  .brand-strip .brand-logo,
  .brand-strip a:nth-child(3) img {
    width: 85px;
    height: 39px;
  }
  .company-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .company-card {
    padding: 16px 13px;
    min-height: 265px;
    border-radius: 13px;
  }
  .company-card h3 {
    font-size: 18px;
    line-height: 1.2;
  }
  .company-card p {
    font-size: 12px;
    line-height: 1.6;
    margin-bottom: 15px;
  }
  .company-logo {
    height: 70px;
  }
  .company-logo .brand-logo {
    width: 105px;
    height: 49px;
  }
  .inspire-card .company-logo .brand-logo {
    width: 122px;
  }
  .card-top {
    font-size: 8px;
    letter-spacing: 0;
  }
  .card-top > span:last-child {
    font-size: 18px;
  }
  .card-link {
    font-size: 11px;
    line-height: 1.6;
  }
  .compact-companies {
    padding: 40px 12px;
    margin-bottom: 50px;
  }
  .section {
    padding-top: 55px;
    padding-bottom: 55px;
  }
  .quality-copy {
    padding: 35px 24px;
  }
  .person-photo {
    height: 360px;
  }
  .footer-top {
    gap: 40px;
  }
  .footer-tagline {
    font-size: 21px !important;
  }
  .company-contact {
    max-width: 100%;
  }
  .company-contact h3 {
    font-size: 21px;
  }
  .company-contact address {
    font-size: 14px;
  }
  .project-gallery {
    grid-template-columns: 1fr;
    margin: 20px 13px;
  }
  .project-gallery img {
    height: 290px;
  }
  .page-intro {
    margin: 0 13px 30px;
    font-size: 16px;
  }
  .search-section {
    padding: 0 13px 55px;
  }
  .search-form {
    gap: 8px;
  }
  .search-form input {
    padding: 15px;
    font-size: 14px;
  }
  .search-form .button {
    padding: 14px 18px;
    gap: 10px;
  }
  .job-card {
    padding: 24px;
  }
  .job-card h2 {
    font-size: 25px;
  }
  .job-detail {
    padding: 0 13px 55px;
    gap: 25px;
  }
  .filter-form {
    gap: 12px;
    align-items: stretch;
    flex-direction: column;
  }
  .job-card .eyebrow {
    font-size: 10px;
  }
  .empty-state {
    padding: 30px;
  }
  .empty-state h2 {
    font-size: 27px;
  }
  .preview-banner {
    font-size: 12px;
  }
  .preview-banner a {
    display: block;
    margin: 8px 0 0;
  }
}
@media (max-width: 360px) {
  .company-grid {
    grid-template-columns: 1fr;
  }
  .company-card {
    min-height: 230px;
  }
  .company-card p {
    font-size: 14px;
  }
  .card-link {
    font-size: 13px;
  }
  .hero h1 {
    font-size: 2.65rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .brand-track {
    animation: none;
    transform: none;
  }
  .brand-strip {
    overflow-x: auto;
    padding-right: 0;
  }
  .motion-toggle {
    display: none;
  }
}

/* Two identical groups make the transition at the end of each lap seamless. */
.brand-track {
  gap: 0;
  padding: 0;
  min-width: 0;
  justify-content: flex-start;
}
.brand-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 45px;
  padding-right: 45px;
  flex-shrink: 0;
  min-width: max(900px, calc(100vw - 120px));
}
.brand-group > a {
  display: block;
  width: 100px;
  flex: 0 0 100px;
}
@keyframes brand-loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.heritage-band {
  margin-bottom: 65px;
}
.social-brand,
.social-custom {
  width: 21px;
  height: 21px;
  object-fit: contain;
}
footer .social-brand {
  filter: invert(1);
}
@media (max-width: 680px) {
  .brand-group {
    min-width: 0;
    gap: 32px;
    padding-right: 32px;
  }
  .brand-group > a {
    width: 85px;
    flex-basis: 85px;
  }
  .heritage-band {
    margin: 0 0 35px;
  }
  .brand-track {
    animation-duration: 26s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .brand-copy {
    display: none;
  }
  .brand-track {
    animation: none;
  }
  .brand-group {
    min-width: 0;
  }
}

/* TAWAR editorial motion and presentation */
html{scroll-padding-top:110px}
.site-wrap{max-width:1800px;padding:0 28px}
.header{position:sticky;top:0;z-index:30;background:var(--paper);transition:box-shadow .3s,transform .3s;min-height:100px}
.header.is-scrolled{box-shadow:0 10px 30px #0000000c}
.header nav a{position:relative}
.header nav a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.header nav a:hover:after,.header nav a:focus-visible:after{transform:scaleX(1)}
.scroll-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:100;background:var(--brand);transform:scaleX(var(--page-progress,0));transform-origin:left}
.hero{min-height: min(850px,85svh);border-radius:4px;isolation:isolate;display:flex;align-items:flex-end;background:#292833;color:white}
.hero-image{object-position:center;transform:scale(1.04);transition:transform 1.5s}
.hero-shade{background:linear-gradient(0deg,#171620db, #17162015 95%)}
.hero-copy{padding:clamp(28px,5vw,88px);position:relative;z-index:2;width:100%;max-width:1100px}
.hero h1{font-size:clamp(48px,7.2vw,112px);line-height:.98;letter-spacing:-.065em;max-width:1000px;font-weight:400;color:white}
.hero .eyebrow,.hero-intro{color:#ffffffd9}
.hero-intro{max-width:550px;font-size:18px}
.hero .button{background:white;color:#282733}
.hero-caption{color:#ffffffb5;right:28px;bottom:18px;font-size:10px;max-width:38%}
.section{padding-top:110px;padding-bottom:110px}
h2{font-weight:400;letter-spacing:-.05em;font-size:clamp(36px,4.5vw,70px);line-height:1.08}
.intro>div{max-width:850px}.intro .body-large{font-size:clamp(20px,2.3vw,32px);line-height:1.4}
.brand-strip{border-bottom:1px solid var(--line);border-radius:0}
.heritage-band{border-radius:4px}.big-year{letter-spacing:-.065em}
.company-card{border-radius:5px;transition:transform .35s,border-color .35s,box-shadow .35s}
.company-card:hover{transform:translateY(-7px);box-shadow:0 16px 30px #2827330a}
.quality-panel{border-radius:4px;overflow:hidden}.quality-photo{min-height:680px}.quality-photo img{object-fit:cover}
.project-grid{gap:28px}.project-art{border-radius:4px;overflow:hidden;aspect-ratio:4/3}.project-art img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.project-card:hover .project-art img{transform:scale(1.045)}.project-caption h3{font-size:26px;font-weight:400}.project-arrow{transition:transform .35s}.project-card:hover .project-arrow{transform:rotate(45deg)}
.people-intro{border-top:1px solid var(--line)}.home-people{grid-column:1/-1;min-width:0;margin-top:40px;width:100%}
.home-people .people-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,31%);grid-template-columns:none;gap:24px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:24px}
.person{min-width:0;border:0;border-radius:0;padding:0;scroll-snap-align:start;background:transparent}
.person-photo,.person-monogram{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:4px;margin-bottom:24px}
.person-monogram{display:grid;place-items:center;font-size:80px;background:var(--surface);color:var(--brand)}
.person h3{font-size:28px;font-weight:400;letter-spacing:-.04em}.person-role{font-size:13px;text-transform:uppercase;letter-spacing:.07em}
.person p{max-width:42ch}.company-people .people-grid{gap:28px}
.cta{border-radius:4px;padding:70px 50px}.cta h2{max-width:900px}footer{border-radius:4px 4px 0 0}
.background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s;pointer-events:none}.background-video.is-playing{opacity:1}
.video-toggle{position:absolute;z-index:4;right:24px;top:24px;border:1px solid #ffffff80;border-radius:30px;padding:10px 18px;color:white;background:#16151c80;font:inherit;font-size:12px}
.company-hero-image{position:relative;overflow:hidden}
.menu-toggle{display:block}.mobile-nav:not([hidden]){position:fixed;inset:100px 28px 20px;z-index:29;background:var(--brand);color:white;padding:clamp(24px,5vw,70px);display:flex;flex-direction:column;gap:12px;overflow:auto;border-radius:4px;animation:menu-enter .4s ease both}
.mobile-nav a{font-size:clamp(25px,3.8vw,55px);letter-spacing:-.04em;line-height:1.25;transition:transform .25s}.mobile-nav a:hover{transform:translateX(12px)}
@keyframes menu-enter{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
@media(prefers-reduced-motion:no-preference){.motion-ready .reveal{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal.visible{opacity:1;transform:none}}
@media(max-width:1000px){.header>nav{display:none}.quality-photo{min-height:480px}.hero{min-height:720px}.hero h1{font-size:clamp(48px,8vw,85px)}}
@media(max-width:650px){.site-wrap{padding:0 14px}.header{min-height:78px}.header-actions{gap:6px}.header-actions>.button{display:none}.hero{min-height:690px;min-height:82svh}.hero-copy{padding:28px 22px 56px}.hero h1{font-size:clamp(42px,11.2vw,70px)}.hero-intro{font-size:16px}.hero-caption{font-size:9px;max-width:70%}.section{padding-top:65px;padding-bottom:65px}.quality-photo{min-height:360px}.home-people .people-grid{grid-auto-columns:85%}.project-grid{gap:35px}.cta{padding:40px 24px}.mobile-nav:not([hidden]){inset:78px 14px 14px}.mobile-nav a{font-size:32px}.company-hero h1{font-size:42px}.video-toggle{top:14px;right:14px}html{scroll-padding-top:88px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.background-video{display:none}.background-video.is-playing{display:block}}
.project-card,.project-caption,.project-caption>div{min-width:0}.project-caption{flex-wrap:wrap;gap:12px}.project-caption h3,.project-caption p{overflow-wrap:anywhere}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.project-grid{grid-template-columns:minmax(0,1fr)}.hero h1{overflow-wrap:anywhere}.people-grid{grid-template-columns:minmax(0,1fr)}}
.project-art{width:100%;height:auto;min-height:0}

/* Edge-to-edge landing imagery with navigation over the scene. */
body.full-bleed .site-wrap{max-width:none;padding:0}
.full-bleed .header{position:fixed;inset:0 0 auto;height:104px;min-height:0;padding:0 clamp(22px,3.5vw,64px);color:white;background:linear-gradient(#11111970,transparent);box-shadow:none;transition:background .3s,box-shadow .3s}
.full-bleed .header.is-scrolled,.full-bleed .header:has(.menu-toggle[aria-expanded=true]){background:#24232dec;backdrop-filter:blur(14px);box-shadow:0 3px 20px #00000015}
.full-bleed .header .brand-logo{filter:brightness(0) invert(1)}
.full-bleed .header .search-toggle,.full-bleed .header .menu-toggle{color:white;background:#ffffff10;border:1px solid #ffffff70}
.full-bleed .header .button{background:white;color:#282733;border-color:white}
.full-bleed main>.hero,body.full-bleed main>.company-hero{width:100%;margin:0;border-radius:0;min-height:100svh;height:auto;aspect-ratio:auto;padding:0;display:flex;align-items:flex-end;position:relative;overflow:hidden;isolation:isolate;color:white}
.full-bleed .hero-copy{padding:180px clamp(24px,5vw,90px) 80px;max-width:1250px}
.full-bleed .hero-image{transform:none}
.full-bleed .hero-shade{background:linear-gradient(180deg,#14131d42 0%,#14131d10 28%,#14131dac 100%)}
.full-bleed main>section:not(.hero):not(.company-hero){max-width:1680px;width:calc(100% - 112px);margin-left:auto;margin-right:auto}
.full-bleed main>.brand-strip{max-width:none;width:100%}
.full-bleed footer{border-radius:0;margin:0;padding-left:clamp(24px,5vw,90px);padding-right:clamp(24px,5vw,90px)}
.full-bleed .mobile-nav:not([hidden]){inset:104px 0 0;border-radius:0;background:#24232df5;backdrop-filter:blur(14px)}
.full-bleed main>.company-bar{position:absolute;z-index:5;top:118px;left:clamp(24px,5vw,90px);right:clamp(24px,5vw,90px);color:white;border:0;margin:0}
.full-bleed .company-hero-image{position:absolute;inset:0;width:100%;height:100%;min-height:0;z-index:-1}
.full-bleed .company-hero-image>img{width:100%;height:100%;object-fit:cover}
.full-bleed .company-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#15141e55,#15141e25 35%,#15141ec9);pointer-events:none}
.full-bleed .company-hero-copy{position:relative;z-index:1;width:100%;max-width:1150px;padding:210px clamp(24px,5vw,90px) 85px;background:transparent}
.full-bleed .company-hero h1{font-size:clamp(46px,6.7vw,100px);font-weight:400;line-height:1.02;letter-spacing:-.055em;color:white}
body.full-bleed main .company-hero .eyebrow,body.full-bleed main .company-hero-copy>p:not(.eyebrow){color:white;max-width:650px;opacity:.95}
.full-bleed .video-toggle{top:auto;bottom:28px;right:28px;z-index:6}
.full-bleed .company-hero-image .image-credit{z-index:1}
@media(max-width:650px){.full-bleed .header{height:82px;padding:0 20px;gap:14px}.full-bleed .header .brand-logo{width:115px}.full-bleed .hero-copy{padding:150px 24px 76px}.full-bleed main>section:not(.hero):not(.company-hero){width:calc(100% - 40px)}.full-bleed main>.brand-strip{width:100%}.full-bleed .hero h1{font-size:clamp(42px,11vw,64px)}.full-bleed .mobile-nav:not([hidden]){inset:82px 0 0}.full-bleed main>.company-bar{top:100px;left:24px;right:24px}.full-bleed .company-hero-copy{padding:180px 24px 85px}.full-bleed .company-hero h1{font-size:44px}.full-bleed .video-toggle{bottom:18px;right:18px}.full-bleed .hero-caption{left:24px;right:auto;bottom:22px;max-width:65%}}
body.full-bleed main>.hero{min-height:100svh;height:auto;aspect-ratio:auto}
body.full-bleed main>.hero>img.hero-image,body.full-bleed main .company-hero-image>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
body.full-bleed main .company-hero-image{height:100%;aspect-ratio:auto}

/* Continuous full-width editorial sections. */
body .site-wrap{max-width:none;padding:0}
body .site-wrap main>section,body.full-bleed .site-wrap main>section:not(.hero):not(.company-hero){width:100%;max-width:none;margin-left:0;margin-right:0;border-radius:0}
.section,.page-top,.search-section,.project-detail{padding-left:clamp(24px,5vw,90px);padding-right:clamp(24px,5vw,90px)}
body main>.section:has(.company-grid),body main>.section:has(.project-grid),body main>.section:has(.people-grid),body main>.expertise{padding-left:0;padding-right:0}
.section:has(.company-grid)>.section-heading,.section:has(.project-grid)>.section-heading,.section:has(.people-grid)>:not(.people-grid):not(.home-people),.expertise>.section-heading{margin-left:clamp(24px,5vw,90px);margin-right:clamp(24px,5vw,90px)}
.company-grid,.project-grid,.people-grid,.service-grid{gap:1px}
.company-card,.project-art,.person-photo,.person-monogram,.service-grid article{border-radius:0}
.company-card{border:0;padding:clamp(24px,3vw,48px)}
.project-caption,.person>h3,.person>p,.person>.social-links,.person>.contact-number,.person>.contact-email{margin-left:24px;margin-right:24px}
.project-caption{margin-bottom:35px}.project-art{aspect-ratio:4/3}
.quality-panel{gap:0;margin:0;border-radius:0}.quality-photo{border-radius:0}
.heritage-band{padding:clamp(30px,5vw,90px);border-radius:0}
.people-intro{display:grid;grid-template-columns:1fr 2fr}.home-people{margin:40px 0 0}.home-people .people-grid{gap:1px;grid-auto-columns:minmax(270px,33.333%)}
.cta{padding:clamp(40px,7vw,110px) clamp(24px,5vw,90px);border-radius:0}
body .header:not(.full-bleed .header){padding-left:clamp(24px,4vw,64px);padding-right:clamp(24px,4vw,64px)}
body .header.is-scrolled,body.full-bleed .header.is-scrolled,body .header:has(.menu-toggle[aria-expanded=true]),body .mobile-nav:not([hidden]){background:var(--brand);color:var(--on-brand,#fff);backdrop-filter:none}
body .header.is-scrolled .brand-logo,body .header:has(.menu-toggle[aria-expanded=true]) .brand-logo{filter:var(--brand-logo-filter,brightness(0) invert(1))}
body .header.is-scrolled .menu-toggle,body .header.is-scrolled .search-toggle,body .header:has(.menu-toggle[aria-expanded=true]) .menu-toggle,body .header:has(.menu-toggle[aria-expanded=true]) .search-toggle{color:var(--on-brand,#fff);border-color:currentColor;background:transparent}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--paper);color:var(--ink);border-top:1px solid var(--line);padding:22px clamp(24px,4vw,64px);display:flex;align-items:center;gap:36px;box-shadow:0 -10px 40px #00000012}.cookie-banner[hidden]{display:none}.cookie-banner strong{font-size:19px}.cookie-banner p{font-size:13px;max-width:740px;margin:8px 0 0}.cookie-actions{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap}
.cookie-actions button,#save-cookies{padding:12px 17px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:30px;font-size:12px}.cookie-actions button[data-consent=accept],#save-cookies{background:var(--brand);color:var(--on-brand,#fff);border-color:var(--brand)}
.cookie-settings{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#cookie-dialog{width:min(580px,calc(100% - 32px));max-height:85svh;overflow:auto;border:0;background:var(--paper);color:var(--ink);padding:32px;box-shadow:0 20px 100px #0003}#cookie-dialog::backdrop{background:#0008}#cookie-dialog h2{font-size:32px}#cookie-dialog p{font-size:14px}.cookie-close{float:right;border:0;background:none;color:inherit;font-size:25px}.cookie-option{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding:20px 0}.cookie-option small{display:block;line-height:1.5;margin-top:8px}.cookie-option input{width:24px;height:24px;flex-shrink:0;accent-color:var(--brand)}
@media(max-width:1000px){.cookie-banner{align-items:flex-start;flex-direction:column;gap:15px}}
@media(max-width:650px){.people-intro{grid-template-columns:1fr}.home-people .people-grid{grid-auto-columns:85%}.cookie-banner{padding:18px 20px;max-height:48svh;overflow:auto}.cookie-actions{gap:8px}.cookie-actions button{font-size:11px;padding:10px 13px}.project-caption{margin-left:20px;margin-right:20px}.company-grid,.service-grid{grid-template-columns:minmax(0,1fr)}}
.service-grid article{padding:clamp(24px,4vw,60px)}
body .quality-copy,body .quality-copy p,body .quality-copy h2,body .quality-copy h3{color:var(--on-brand,#fff)}
body .quality-copy{background:var(--brand)}

/* Portrait information adapts to the visitor's input device. */
.person{position:relative;isolation:isolate;outline-offset:-4px}
.person-caption{padding:24px;background:var(--paper);color:var(--ink)}
.person-caption h3{margin:0 0 10px;font-size:28px;line-height:1.1}
.person-caption .person-role{margin-bottom:14px}.person-details>p{font-size:15px;line-height:1.6}
.person-details .contact-number,.person-details .contact-email{display:block;margin:8px 0;overflow-wrap:anywhere}
.person .person-photo,.person .person-monogram{margin-bottom:0}
@media(min-width:900px) and (hover:hover) and (pointer:fine){
 .person{min-height:530px;overflow:hidden;background:var(--brand)}
 .person>img.person-photo,.person>.person-monogram{position:absolute;inset:0;height:100%;width:100%;aspect-ratio:auto;object-fit:cover;transition:transform .7s}
 .person:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(transparent 25%,#14131dc9);pointer-events:none}
 .person-caption{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;min-height:530px;height:100%;padding:32px;color:white;background:transparent;transition:background .4s}
 .person-caption .person-role{color:#fff;opacity:.85}
 .person-details{display:none}
 .person:hover .person-details,.person:focus-within .person-details{display:block;animation:person-in .35s ease}
 .person:hover .person-caption,.person:focus-within .person-caption{background:#14131dcc}
 .person:hover>img.person-photo,.person:focus-within>img.person-photo{transform:scale(1.035)}
 .person .social-brand{filter:invert(1)}
 .person:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
}
@keyframes person-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(hover:none),(max-width:899px){.person-details{display:block}.person-caption{padding:22px}.person-caption h3{font-size:26px}}

/* Each project holds the screen as the next one rises into view. */
body main>.section:has(.project-showcase){padding-left:0;padding-right:0;padding-bottom:0}
.section:has(.project-showcase)>.section-heading{margin-left:clamp(24px,5vw,90px);margin-right:clamp(24px,5vw,90px)}
.project-showcase{position:relative;isolation:isolate;width:100%}
.project-scene{position:sticky;top:104px;min-height:calc(100svh - 104px);display:flex;align-items:stretch;isolation:isolate;overflow:hidden;color:white;background:var(--brand)}
.project-scene-media{position:absolute;inset:0;z-index:-2;background:var(--brand)}
body .project-scene-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;aspect-ratio:auto;transform:scale(var(--scene-scale,1));filter:brightness(var(--scene-brightness,1))}
.project-scene:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#12121c35,transparent 30%,#12121ce6)}
.project-scene-copy{padding:38px clamp(24px,5vw,90px) 56px;width:100%;display:flex;flex-direction:column;justify-content:space-between;gap:100px}
.project-scene-top{display:flex;justify-content:space-between;gap:24px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.project-scene-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:45px}
.project-scene-bottom>div{max-width:850px}.project-scene-bottom h3{font-size:clamp(38px,6vw,90px);font-weight:400;letter-spacing:-.055em;line-height:1.05;margin-bottom:22px}
.project-scene-description{max-width:650px;font-size:17px;line-height:1.6}.project-scene .text-link{color:white;flex-shrink:0;border-bottom:1px solid #ffffff80;padding:14px 0}.project-photo-note{font-size:12px;opacity:.7}
.project-scene-placeholder{padding:8vw;color:#ffffff18;font-size:clamp(60px,13vw,180px);line-height:1;letter-spacing:-.06em;overflow-wrap:anywhere}
.project-scene:nth-child(even) .project-scene-media{background:var(--accent)}
@media(max-width:899px){.project-scene{top:82px;min-height:calc(100svh - 82px)}.project-scene-copy{padding:28px 24px 40px;gap:160px}.project-scene-bottom{display:block}.project-scene-bottom h3{font-size:42px}.project-scene-description{font-size:15px}.project-scene-top{font-size:11px}.project-scene .text-link{display:inline-flex;margin-top:12px}}
@media(prefers-reduced-motion:reduce){.project-scene{position:relative;top:0}.project-scene-media>img{transform:none!important;filter:none!important}.person-details{animation:none!important}}
@media(min-width:900px) and (hover:hover) and (pointer:fine){.person .person-details p,.person .person-details a{color:white}.person .person-details p{opacity:.92}}
.project-scene{top:var(--showcase-top,104px);min-height:calc(100svh - var(--showcase-top,104px))}
@media(prefers-reduced-motion:reduce){.project-scene{top:0}}

/* Brand-preserving compact navigation. */
body h1,body h2,body h3{font-family:var(--heading-font,"DM Sans",sans-serif)}
body .header,body.full-bleed .header,body .header.is-scrolled,body.full-bleed .header.is-scrolled,body .header:has(.menu-toggle[aria-expanded=true]){position:fixed;inset:20px auto auto 50%;transform:translateX(-50%);width:auto;height:auto;min-height:0;padding:0!important;background:transparent;box-shadow:none;backdrop-filter:none;z-index:60}
.nav-capsule{display:flex;align-items:center;gap:18px;padding:10px 13px 10px 18px;background:#fafaf8;color:#282733;border-radius:3px;box-shadow:0 2px 20px #0001}
body .header .brand-logo,body .header.is-scrolled .brand-logo,body.full-bleed .header .brand-logo,body .header:has(.menu-toggle[aria-expanded=true]) .brand-logo{width:108px;height:38px;filter:none}
body .header .menu-toggle,body .header.is-scrolled .menu-toggle,body .header:has(.menu-toggle[aria-expanded=true]) .menu-toggle{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-left:1px solid #d6d5d9;border-radius:0;background:none;color:#282733;font-size:24px}
body .mobile-nav:not([hidden]),body.full-bleed .mobile-nav:not([hidden]){inset:0;padding:120px clamp(24px,8vw,120px) 40px;border-radius:0;z-index:50}
.theme-toggle{color:inherit;background:transparent;border:1px solid currentColor;padding:12px 20px;align-self:flex-start;margin-top:20px;border-radius:30px}
body:not(.full-bleed) main{padding-top:100px}
body .hero>.hero-image,body .hero>.background-video,body .company-hero-image{transform:translateY(var(--hero-scroll,0px));will-change:transform}
body .company-hero-image{height:100svh;min-height:100%}
/* Compact company cards in one continuous row. */
.company-marquee{overflow:hidden;position:relative;padding-bottom:50px}
.company-marquee-track{display:flex;width:max-content;animation:companies-travel 45s linear infinite}
.company-marquee .company-grid{display:flex;flex-wrap:nowrap;gap:1px;width:max-content}
.company-marquee .company-card{width:280px;min-height:210px;padding:24px;flex:none;border-radius:0}
.company-marquee .company-logo{height:64px;margin:10px 0}.company-marquee .brand-logo{width:160px;height:58px}.company-marquee .company-card h3{font-size:17px;margin:10px 0}.company-marquee .company-card>p,.company-marquee .card-top,.company-marquee .card-link{display:none}
.company-marquee:hover .company-marquee-track,.company-marquee:focus-within .company-marquee-track,.company-marquee.paused .company-marquee-track{animation-play-state:paused}
.companies-motion{position:absolute;right:24px;bottom:8px;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--ink);padding:8px;font-size:12px}
@keyframes companies-travel{to{transform:translateX(-50%)}}
/* Fixed project copy with synchronised scene changes. */
.project-stage{position:relative}.project-step-controls{display:none}
.project-showcase.is-pinned .project-stage{position:sticky;top:0;height:100svh;overflow:hidden}
.project-showcase.is-pinned .project-scene{position:absolute;inset:0;min-height:100%;height:100%;top:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .65s ease,visibility .65s}
.project-showcase.is-pinned .project-scene.active{opacity:1;visibility:visible;pointer-events:auto}
.project-showcase.is-pinned .project-scene-copy{padding-top:120px;padding-bottom:75px}
.project-showcase.is-pinned .project-step-controls{display:flex;gap:8px;position:absolute;z-index:6;right:clamp(24px,5vw,90px);bottom:20px}
.project-step-controls button{border:1px solid #ffffff90;border-radius:50%;width:38px;height:38px;color:white;background:#17162055;font-size:20px}.project-step-controls button:disabled{opacity:.35;cursor:default}
.project-image-link{position:absolute;inset:0;z-index:1}.project-scene-copy{position:relative;z-index:2;pointer-events:none}.project-scene-copy a{pointer-events:auto}
.project-cursor{display:none;position:fixed;z-index:70;pointer-events:none;transform:translate(-50%,-50%);border-radius:50%;width:105px;height:105px;place-items:center;background:#fafaf8;color:#282733;font-size:13px;text-align:center}
@media(hover:hover) and (pointer:fine){.project-image-link{cursor:none}.project-cursor.visible{display:grid}}
@media(max-width:650px){body .header,body.full-bleed .header{top:16px}.company-marquee .company-card{width:240px;min-height:175px}.project-showcase.is-pinned .project-scene-copy{padding-top:105px;padding-bottom:78px}.project-scene-description{max-height:22svh;overflow:auto}.project-scene-copy{gap:30px}}
@media(prefers-reduced-motion:reduce){.company-marquee-track{animation:none}.company-grid-copy{display:none!important}.company-marquee{overflow-x:auto}.company-marquee .companies-motion{display:none}.project-scene{position:relative;top:0}.project-cursor{display:none!important}}
/* Dark appearance preserves each brand's accent and original logo art. */
html[data-theme=dark]{color-scheme:dark}
html[data-theme=dark] body{--paper:#141419!important;--surface:#22222a!important;--ink:#f3f2f6!important;--muted:#c5c3cf!important;--line:#3b3945!important;background:#141419!important;color:#f3f2f6!important}
html[data-theme=dark] :is(.person-caption,.page-top,.intro,.section,.cookie-banner,#cookie-dialog){background:var(--paper);color:var(--ink)}
html[data-theme=dark] :is(.company-card,.cta,.service-grid article,.work-note,.apply-panel){background:#22222a!important;color:#f3f2f6!important;border-color:#3b3945!important}
html[data-theme=dark] :is(.body-large,.intro-body,.person-details p,.person-role,.section-heading>p,.eyebrow.dark,.project-caption p,.breadcrumb){color:#c5c3cf}
html[data-theme=dark] .company-logo{background:#fafaf8;padding:6px 12px;border-radius:3px;width:max-content;max-width:100%}
html[data-theme=dark] .nav-capsule{color-scheme:light}
html[data-theme=dark] input,html[data-theme=dark] textarea,html[data-theme=dark] select{color:var(--ink);background:var(--surface);border-color:var(--line)}
@media(min-width:900px) and (hover:hover) and (pointer:fine){html[data-theme=dark] .person-caption{background:transparent;color:white}html[data-theme=dark] .person:hover .person-caption,html[data-theme=dark] .person:focus-within .person-caption{background:#14131dcc}}
body.full-bleed .header .menu-toggle,body.full-bleed .header.is-scrolled .menu-toggle,body.full-bleed .header:has(.menu-toggle[aria-expanded=true]) .menu-toggle{color:#282733;background:transparent;border:0;border-left:1px solid #d6d5d9}
body .site-wrap>.mobile-nav:not([hidden]),body.full-bleed .site-wrap>.mobile-nav:not([hidden]){background:var(--brand);color:var(--on-brand,#fff);backdrop-filter:none}
