/* Source horizon proportions, with only the customized welcome title. */
@font-face {
  font-family: "Horizon Fraunces";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/fraunces-horizon-italic.woff2") format("woff2");
}

.partner-section {
  position: relative;
  margin: 2px 0 -6px;
  isolation: isolate;
}

.partner-horizon {
  position: relative;
  width: 100%;
  aspect-ratio: 1430 / 300;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  isolation: isolate;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 78%, rgba(0,0,0,.55) 90%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 78%, rgba(0,0,0,.55) 90%, transparent 100%), linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-composite: intersect;
}

.partner-canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.partner-content {
  position: absolute;
  left: 0;
  right: 0;
  top: 13%;
  z-index: 2;
  padding: 0 6%;
  text-align: center;
}

.partner-title {
  margin: 0;
  padding: 0;
  font-family: "Horizon Fraunces", "Source Serif 4", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(34px, 4.7vw, 68px);
  line-height: 1.04;
  letter-spacing: -.01em;
  color: #f4ede3;
  white-space: nowrap;
  text-shadow: 0 2px 28px rgba(0,0,0,.45);
}

.partner-title > span { display: inline-block; }

.partner-gold {
  background: linear-gradient(90deg, #fbe3bd, #d9a877 70%, #c28a55);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: none;
}

.partner-horizon.is-ready ~ .partner-content .partner-title {
  animation: partner-rise 1.2s cubic-bezier(.19,.72,.16,1) .9s backwards;
}

@keyframes partner-rise {
  from { opacity: 0; transform: translateY(12px); filter: blur(5px); }
  to { opacity: 1; transform: none; filter: none; }
}

@media (max-width: 720px) {
  .partner-section { margin: 0 calc(12px - var(--gutter)) -2px; }
  .partner-horizon { aspect-ratio: 1 / .68; }
  .partner-content { top: 10%; padding: 0 5%; }
  .partner-title { font-size: clamp(30px, 8.8vw, 40px); white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-horizon.is-ready ~ .partner-content .partner-title { animation: none; }
}
