/* Home page only */

/* Body Section */
.body {
  background: var(--black);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  overflow: clip;
  width: 100%;
}

/* Hero Container */
.hero {
  position: relative;
  width: 100%;
  height: 600px;
  padding: 107px 181px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.hero__bg {
  position: absolute;
  left: 50%;
  top: -300px;
  width: 2884px;
  height: 1200px;
  transform: translateX(-50%);
  pointer-events: none;
  /* Fade the left and right edges to black, like the bottom, so very wide screens
     never see where the gradient video ends (off-screen on normal widths) */
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 15%, #000 85%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, #000 15%, #000 85%, transparent 100%);
}
.hero__bg > * {
  position: absolute;
  left: 50%;
  top: 0;
  height: 1200px;
  transform: translateX(-50%);
}
.hero__video { width: 2884px; object-fit: cover; }
.hero__frost { width: 2880px; background: rgba(0, 0, 0, 0.5); }
.hero__dark {
  width: 2880px;
  background: linear-gradient(to bottom, rgba(28, 31, 35, 0) 4.074%, var(--black) 100%);
}

.hero__text {
  position: relative;
  width: 100%;
  max-width: 1080px;
  min-width: 440px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 36px;
  font-feature-settings: "salt" 1;
}
/* Large Hero Text */
.hero__header {
  max-width: 680px;
  font-size: 40px;
  line-height: 1.4;
  letter-spacing: -0.4px;
  color: var(--text-muted);
  margin: 0;
  font-weight: 400;
}
.hero__header strong { color: #fff; font-weight: 400; }

.current {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  line-height: 1.4;
}
/* Medium Hero Text */
.current__role { font-size: 32px; color: var(--text-white); }
.previously {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 10px 10px 0;
  color: var(--text-muted);
  white-space: nowrap;
}
/* Section Heading */
.previously__label { font-size: 18px; letter-spacing: 1.8px; }
.previously__company { font-size: 24px; font-weight: 600; letter-spacing: 0.48px; }

/* Case Studies Container */
.case-studies {
  position: relative;
  width: 100%;
  padding-bottom: 80px;
  display: flex;
  justify-content: center;
}
.case-grid {
  width: 1100px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 20px;
  row-gap: 64px;
}

/* Smaller screens */
@media (max-width: 1440px) {
  .hero { padding-left: var(--gutter); padding-right: var(--gutter); }
  .case-grid { width: calc(100% - 2 * var(--gutter) + 40px); max-width: 1100px; }
}
@media (max-width: 900px) {
  .hero { height: auto; min-height: 520px; padding-top: 80px; padding-bottom: 80px; }
  .hero__text { min-width: 0; }
  .hero__header { font-size: 32px; }
  .current__role { font-size: 28px; }
  .case-grid { width: calc(100% - 2 * var(--gutter)); grid-template-columns: 1fr; row-gap: 48px; }
}
@media (max-width: 600px) {
  .hero__header { font-size: 26px; }
  .current__role { font-size: 22px; }
  .previously__label { font-size: 14px; }
  .previously__company { font-size: 20px; }
}

/* Page entry: the gradient background stays put, then the hero text and the case studies fade and slide in */
.cs-enter .hero__text,
.cs-enter .case-studies {
  animation: cs-enter var(--enter-duration) var(--enter-ease) both;
  animation-delay: var(--enter-delay);
}
.cs-enter .case-studies { animation-delay: calc(var(--enter-delay) + var(--enter-stagger)); }
@media (prefers-reduced-motion: reduce) {
  .cs-enter .hero__text,
  .cs-enter .case-studies { animation-name: cs-enter-fade; animation-duration: 300ms; }
}
