:root {
  color-scheme: light;
  background: #fff;
  color: #262424;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --client-width: 180px;
  --client-gap: 48px;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: #fff; }

main {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-rows: 1fr auto;
}

.hero {
  display: grid;
  place-items: center;
  min-height: 300px;
  padding: 72px 24px 48px;
}

.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  text-align: center;
  max-width: 100%;
}

.logo {
  position: relative;
  isolation: isolate;
  width: clamp(184px, 18vw, 240px);
  max-width: 100%;
  aspect-ratio: 500 / 153;
}

.logo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
}

h1 {
  margin: 0;
  color: #77736f;
  font-size: clamp(14px, 1.4vw, 16px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.brand__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}

.contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 8px;
  color: #77736f;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .06em;
  text-decoration-color: #c7c3bd;
  text-underline-offset: 4px;
}

.contact:hover { color: #262424; text-decoration-color: currentColor; }

/* Light is masked to the original alpha channel, so it follows every letter. */
.glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.glow span {
  display: block;
  width: 100%;
  height: 100%;
  -webkit-mask: url('/assets/pindur-logo.png') center / 100% 100% no-repeat;
  mask: url('/assets/pindur-logo.png') center / 100% 100% no-repeat;
  background: linear-gradient(115deg, #75d9ef 4%, #a18ef0 24%, #ed9bc8 44%, #f0c38d 61%, #8adbc8 80%, #75d9ef 96%);
  background-size: 350% 100%;
  animation: iridescence 12s ease-in-out infinite alternate;
}

.glow--edge {
  opacity: .8;
  filter: blur(2.4px);
  transform: scale(1.018, 1.055);
}

.glow--soft {
  opacity: .32;
  filter: blur(13px);
  animation: light-breath 8s ease-in-out infinite;
}

.glow--soft span { animation-delay: -5s; }

.glow--glint {
  filter: blur(1px);
  transform: scale(1.012, 1.035);
}

.glow--glint span {
  background: linear-gradient(110deg, transparent 38%, #b3eaff 44%, #fff0cf 50%, #edb6ef 56%, transparent 62%);
  background-size: 400% 100%;
  animation: light-pass 10s cubic-bezier(.4, 0, .2, 1) infinite;
}

.clients {
  min-width: 0;
  width: 100%;
  max-width: 1760px;
  margin: 0 auto;
  padding-bottom: max(38px, env(safe-area-inset-bottom));
}

.clients__heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0 24px 14px;
}

.clients__heading p {
  margin: 0;
  color: #98948e;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .24em;
  text-transform: uppercase;
}

:focus-visible { outline: 2px solid #8c8985; outline-offset: 3px; }

.clients__viewport {
  overflow: hidden;
  padding: 12px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.clients__track {
  display: flex;
  width: max-content;
  animation: client-scroll 95s linear infinite;
}

.clients__group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--client-gap);
  list-style: none;
  margin: 0;
  padding: 0 var(--client-gap) 0 0;
}

.client {
  display: flex;
  flex: 0 0 var(--client-width);
  align-items: center;
  justify-content: center;
  width: var(--client-width);
  height: 60px;
}

.client img {
  display: block;
  width: 160px;
  max-height: 50px;
  height: auto;
  object-fit: contain;
  filter: brightness(0);
  opacity: .47;
  user-select: none;
}

.client--stilwerk img { width: 140px; }
.client--ku64 img { width: 116px; }
.client--f80 img { width: 116px; }
.client--schmidt img { width: 152px; }

/* A solid shared ink color, including originally white and multicolor logos. */
@supports (filter: brightness(0) invert(1)) {
  .client img {
    filter: brightness(0) invert(.55) sepia(.06) saturate(.6);
    opacity: 1;
  }
}

.clients__viewport:focus-within .clients__track { animation-play-state: paused; }

@media (hover: hover) {
  .clients__viewport:hover .clients__track { animation-play-state: paused; }
}

@keyframes iridescence {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

@keyframes light-breath {
  0%, 100% { opacity: .22; transform: scale(1.01, 1.03); }
  45% { opacity: .42; transform: scale(1.045, 1.12); }
  75% { opacity: .3; transform: scale(1.025, 1.065); }
}

@keyframes light-pass {
  0%, 18% { background-position: 100% 50%; opacity: 0; }
  30% { opacity: .95; }
  55% { background-position: 0% 50%; opacity: 0; }
  100% { background-position: 0% 50%; opacity: 0; }
}

@keyframes client-scroll {
  to { transform: translateX(-50%); }
}

@media (max-width: 600px) {
  :root { --client-width: 144px; --client-gap: 28px; }
  .hero { padding: 48px 20px 36px; }
  .brand { gap: 26px; }
  h1 { font-size: 13px; letter-spacing: .1em; }
  .clients { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  .clients__heading { margin: 0 16px 8px; }
  .clients__track { animation-duration: 88s; }
  .client { height: 54px; }
  .client img { width: 132px; max-height: 44px; }
  .client--stilwerk img { width: 120px; }
  .client--ku64 img, .client--f80 img { width: 100px; }
  .client--schmidt img { width: 128px; }
  .glow--soft { filter: blur(10px); }
}

@media (prefers-reduced-motion: reduce) {
  .glow, .glow span, .clients__track { animation: none; }
  .clients__viewport {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
    scrollbar-width: thin;
    scrollbar-color: #dad7d3 transparent;
  }
  .clients__group { padding-left: 24px; }
  .clients__group--copy { display: none; }
}
