body { background: #fff; }
.hero__sticky { background: #fff; }
.hero__grid { inset: 0 5%; gap: 8px; grid-template-columns: 1fr 1fr 1fr; opacity: 1; }
.hero__col { min-width: 0; }
.hero__col--middle { display: block; height: 76svh; min-height: 0; }
.hero__col:nth-child(3) { display: flex; }
.hero__col:first-child { transform: translateX(calc((var(--hero-progress, 0) - 1) * var(--hero-side-travel, 33vw))) translateY(-12svh); }
.hero__col:last-child { transform: translateX(calc((1 - var(--hero-progress, 0)) * var(--hero-side-travel, 33vw))) translateY(12svh); }
.hero__grid-image { display: block; width: 100%; min-width: 0; object-fit: cover; object-position: var(--image-position, 50% 50%); border-radius: 8px; transform: none; }
.hero__grid-image--small { width: 74%; transform: none; }
.hero__col:last-child .hero__grid-image--small { align-self: flex-start; }
.hero__mask { inset: var(--hero-crop-y, 0px) var(--hero-crop-x, 0px); transform: none; }
.hero__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--image-position, 50% 50%); }
.hero__copy { position: absolute; inset: 0; color: #fff; pointer-events: none; opacity: var(--hero-copy-opacity, 1); background: linear-gradient(0deg, rgba(0,0,0,.65), transparent 80%); }
.hero__title { display: block; top: auto; bottom: 100px; transform: none; font-size: 64px; font-weight: 400; line-height: 1.04; max-width: 850px; }
.hero__title > span:first-child, .hero__title > span:last-child { max-width: 100%; text-align: left; }
.wordmark { font-size: 88px; line-height: 1.04; font-weight: 400; }
.fullscreen-push h2, .contact-push h2 { font-weight: 400; }
.fullscreen-push__image { width: 116%; height: 116%; object-fit: cover; }
.fullscreen-push { color: var(--black); }
.fullscreen-push .button { background: #fff; color: var(--black); }
.contact-push.container { width: 100%; margin: 0; padding: 100px var(--margin) 120px; background: var(--grey); border-radius: 0; }
.footer.container { width: 100%; padding-inline: var(--margin); background: var(--grey); }

.carousel-section { --carousel-inset: 8%; background: #fff; }
.carousel-section .section-heading { margin-bottom: 100px; }
.carousel-section .section-heading h2 { font-size: 64px; font-weight: 400; max-width: 1000px; }
.carousel__track {
  grid-auto-columns: 42vw;
  padding-inline: var(--carousel-inset);
  scroll-padding-inline: var(--carousel-inset);
  gap: 8px;
  align-items: start;
}
.feature-tile {
  position: relative;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 8 / 5;
  border-radius: 8px;
  padding: 24px;
  overflow: hidden;
  align-items: flex-end;
}
.feature-tile > div { position: static; min-width: 0; }
.feature-tile .eyebrow { position: absolute; inset: 24px 24px auto; margin: 0; font-size: 14px; }
.feature-tile h3 { position: relative; margin: 0; max-width: 440px; font-size: 24px; font-weight: 400; line-height: 1.2; }
.feature-tile .icon-button { width: 40px; height: 40px; border-radius: 50%; }
.feature-tile .icon-button img { width: 20px; height: 20px; }
.feature-tile:not(.feature-tile--pretium) .icon-button img { filter: invert(1); }
.feature-tile--pretium .feature-tile__art { top: 0; height: 100%; object-fit: cover; }
.feature-tile--pretium { color: #fff; }
.feature-tile--pretium .eyebrow { color: #102a42; }
.feature-tile--pretium::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.75), transparent 62%, rgba(0,0,0,.28)); }
.feature-tile--pretium .icon-button { z-index: 2; }
.feature-tile--project .feature-tile__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.feature-tile--project::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.75), transparent 65%, rgba(0,0,0,.28)); }
.feature-tile--project > div, .feature-tile--project .icon-button { z-index: 1; }
.feature-tile .eyebrow, .feature-tile h3 { z-index: 2; }
.feature-tile--project .icon-button { position: relative; z-index: 2; }
.stack-card { overflow: hidden; border-radius: 8px; }
.stack-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.stack-card--content::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.75), transparent 80%); }
.stack-card--content > div { position: relative; z-index: 1; }
.feature-tile--pretium > div { position: static; }
.carousel__controls.container { width: 84%; margin-top: 24px; }
.carousel__controls .icon-button { width: 40px; height: 40px; border-radius: 50%; background: #f5f5f5; }
.carousel__controls .icon-button img { width: 18px; height: 18px; }
.carousel__controls .icon-button:disabled { opacity: .35; cursor: default; }
.carousel__dots { gap: 16px; margin-left: 30px; }
.carousel__dots span { width: 7px; height: 7px; background: #f1f1f1; border: 2px solid transparent; }
.carousel__dots span.is-active { background: #fff; border-color: #050505; }

.article-carousel .carousel__track { grid-auto-columns: 28vw; }
.article-tile, .article-tile .project-card-link { display: flex; flex-direction: column; min-width: 0; }
.article-tile .placeholder, .article-tile .project-card__image {
  width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover;
  border-radius: 8px; margin: 0 0 28px; order: 0;
}
.article-tile h3 { order: 1; margin: 0 0 12px; font-size: 24px; font-weight: 400; line-height: 1.2; }
.article-tile p { order: 2; margin: 0; max-width: 42ch; color: #666; font-size: 16px; line-height: 1.45; }
.article-tile p:first-of-type { order: 3; margin: 18px 0 0; color: #888; font-size: 14px; font-weight: 400; }
.project-card-link:hover h3 { text-decoration: underline; text-underline-offset: 4px; }

@media (min-width: 1800px) {
  .feature-tile h3 { font-size: 28px; max-width: 540px; }
}
@media (max-width: 1100px) {
  .hero__title { font-size: 48px; }
  .hero__title { max-width: 680px; }
  .wordmark { font-size: 64px; }
  .carousel__track { grid-auto-columns: 66vw; }
  .article-carousel .carousel__track { grid-auto-columns: 40vw; }
  .carousel-section .section-heading h2 { font-size: 48px; }
}
@media (max-width: 600px) {
  .editorial__image { width: 100%; min-height: 0; }
  .hero__title { font-size: 38px; }
  .hero__title > span:first-child, .hero__title > span:last-child { max-width: 100%; }
  .hero__grid { inset-inline: 16px; grid-template-columns: 1fr 1.5fr 1fr; }
  .hero__col--middle { height: 60svh; }
  .hero__grid-image { aspect-ratio: 3 / 4; }
  .hero__grid-image--small { width: 85%; }
  .wordmark { font-size: 44px; }
  .contact-push.container { padding-block: 64px 80px; }
  .carousel-section { --carousel-inset: 24px; padding-block: 80px; }
  .carousel-section .section-heading { margin-bottom: 48px; }
  .carousel-section .section-heading h2 { font-size: 36px; }
  .carousel__track, .article-carousel .carousel__track { grid-auto-columns: calc(100vw - 56px); }
  .feature-tile { aspect-ratio: 4 / 5; padding: 20px; }
  .feature-tile .eyebrow { inset: 20px 20px auto; font-size: 13px; }
  .feature-tile h3 { font-size: 22px; }
  .feature-tile--pretium .feature-tile__art { height: 100%; }
  .carousel__controls.container { width: calc(100% - 48px); }
  .article-tile h3 { font-size: 22px; }
  .article-tile .placeholder, .article-tile .project-card__image { margin-bottom: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .split-title [data-char] { transition: none; }
}
