.gy-carousel {
  position: relative;
  display: block;
  min-height: calc(100vh - 78px);
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  background: #07111d;
}

.gy-nav-hybrid .gy-carousel { min-height: 100vh; }
.gy-carousel__slides,
.gy-carousel__slide,
.gy-carousel__media,
.gy-carousel__media picture,
.gy-carousel__shade,
.gy-carousel__grid { position: absolute; inset: 0; }

.gy-carousel__slide {
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s cubic-bezier(.2,.7,.2,1), visibility 1s;
}

.gy-carousel__slide.is-active { z-index: 1; opacity: 1; visibility: visible; }
.gy-carousel__media picture { display: block; }
.gy-carousel__media img {
  width: 100%;
  height: 100%;
  object-fit: var(--gy-carousel-fit, cover);
  object-position: var(--gy-carousel-position, center);
  transform: scale(1.06);
  filter: saturate(.9) contrast(1.03);
  transition: transform 7s linear;
}

.gy-carousel__slide.is-active .gy-carousel__media img { transform: scale(1.015); }
.gy-carousel__shade { background: linear-gradient(90deg,rgba(3,10,18,.97),rgba(3,10,18,.78) 43%,rgba(3,10,18,.15) 75%),linear-gradient(0deg,rgba(3,10,18,.68),transparent 46%); }
.gy-carousel__shade--solar { background: linear-gradient(90deg,rgba(3,10,18,.98),rgba(3,10,18,.8) 42%,rgba(3,10,18,.08) 78%),linear-gradient(0deg,rgba(3,10,18,.68),transparent 48%); }
.gy-carousel__grid { opacity: .12; background-image: linear-gradient(rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.32) 1px,transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg,#000,transparent 72%); }

.gy-carousel__slide .gy-hero__copy {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 7vw;
  width: min(900px,72vw);
  transform: translateY(-52%);
}

.gy-carousel__slide .gy-hero__copy h1 { word-break: keep-all; }

.gy-carousel__slide .gy-hero__copy > * { opacity: 0; transform: translateY(22px); }
.gy-carousel__slide.is-active .gy-hero__copy > * { animation: gyCarouselContentIn .78s cubic-bezier(.2,.7,.2,1) forwards; }
.gy-carousel__slide.is-active .gy-hero__copy > p { animation-delay: .16s; }
.gy-carousel__slide.is-active .gy-hero__copy > h1 { animation-delay: .28s; }
.gy-carousel__slide.is-active .gy-hero__description { animation-delay: .4s; }
.gy-carousel__slide.is-active .gy-hero__actions { animation-delay: .52s; }
.gy-hero__actions .gy-hero__text-action {
  min-height: 44px;
  padding: 0;
  color: #fff;
  background: transparent;
  border-bottom: 1px solid rgba(255,255,255,.45);
  font-weight: 650;
}
.gy-carousel__slide .gy-hero__copy > p span { margin-right: 8px; color: #fff; }
.gy-carousel__slide .gy-hero__meta { z-index: 5; right: 36px; bottom: 94px; }

@keyframes gyCarouselContentIn { to { opacity: 1; transform: none; } }

.gy-carousel__energy {
  position: absolute;
  z-index: 3;
  right: 11%;
  bottom: 24%;
  width: 34%;
  height: 2px;
  background: linear-gradient(90deg,transparent,#b9de5f 30%,#fff 75%,transparent);
  box-shadow: 0 0 28px rgba(185,222,95,.6);
  opacity: 0;
  transform: rotate(-24deg) scaleX(.1);
  transform-origin: left;
}

.gy-carousel__slide.is-active .gy-carousel__energy { animation: gyCarouselEnergy 2.6s .55s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes gyCarouselEnergy { 40% { opacity: 1; } 100% { opacity: .7; transform: rotate(-24deg) scaleX(1); } }

.gy-carousel__scan {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: 42%;
  width: 2px;
  opacity: 0;
  background: rgba(185,222,95,.7);
  box-shadow: 0 0 30px rgba(185,222,95,.65);
}

.gy-carousel__slide.is-active .gy-carousel__scan { animation: gyCarouselScan 5s .6s cubic-bezier(.2,.7,.2,1) both; }
@keyframes gyCarouselScan { 0% { opacity: 0; transform: translateX(-180px); } 15% { opacity: 1; } 85% { opacity: .7; } 100% { opacity: 0; transform: translateX(520px); } }

.gy-carousel__controls {
  position: absolute;
  z-index: 12;
  right: 36px;
  bottom: 28px;
  left: 7vw;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 14px 30px;
  align-items: end;
  color: #fff;
}

.gy-carousel__progress { grid-column: 1/-1; height: 1px; overflow: hidden; background: rgba(255,255,255,.24); }
.gy-carousel__progress i { display: block; width: 0; height: 100%; background: #b9de5f; }
.gy-carousel__progress i.is-running { animation: gyCarouselProgress 6.5s linear forwards; }
@keyframes gyCarouselProgress { from { width: 0; } to { width: 100%; } }

.gy-carousel__tabs { display: grid; grid-template-columns: repeat(4,minmax(100px,1fr)); gap: 24px; max-width: 760px; }
.gy-carousel__tabs button { display: grid; grid-template-columns: 28px 1fr; gap: 8px; align-items: center; padding: 0; color: rgba(255,255,255,.48); background: transparent; border: 0; text-align: left; cursor: pointer; transition: color .25s; }
.gy-carousel__tabs button.is-active,.gy-carousel__tabs button:hover { color: #fff; }
.gy-carousel__tabs b { color: #b9de5f; font-size: 11px; }
.gy-carousel__tabs span { font-size: 11px; }
.gy-carousel__arrows { display: flex; gap: 8px; }
.gy-carousel__arrows button { width: 42px; height: 42px; color: #fff; background: rgba(7,17,29,.34); border: 1px solid rgba(255,255,255,.3); cursor: pointer; }
.gy-carousel__arrows button:hover { color: #07111d; background: #b9de5f; }

.logged-in .gy-carousel__controls { bottom: 126px; }
.logged-in .gy-carousel__slide .gy-hero__meta { bottom: 192px; }

.gy-motion-minimal .gy-carousel__slide { transition-duration: .35s; }
.gy-motion-minimal .gy-carousel__media img { transition-duration: 1.2s; }
.gy-motion-minimal .gy-carousel__slide.is-active .gy-hero__copy > * { animation-duration: .35s; animation-delay: 0s; }
.gy-motion-off .gy-carousel__progress i { width: 100%; }

@media (max-width: 920px) {
  .gy-carousel,.gy-nav-hybrid .gy-carousel { min-height: max(74vh,720px); }
  .logged-in .gy-carousel,.logged-in.gy-nav-hybrid .gy-carousel { min-height: max(74vh,760px); }
  .gy-carousel__slide .gy-hero__copy { top: auto; right: 24px; bottom: 134px; left: 24px; width: auto; transform: none; }
  .logged-in .gy-carousel__slide .gy-hero__copy { bottom: 176px; }
  .gy-carousel__slide .gy-hero__meta { display: none; }
  .gy-carousel__controls { right: 24px; bottom: 20px; left: 24px; }
  .logged-in .gy-carousel__controls { bottom: 104px; }
  .gy-carousel__tabs { gap: 12px; }
}

@media (max-width: 560px) {
  .gy-carousel__media img { filter: saturate(1.03) contrast(1.06) brightness(1.08); }
  .gy-carousel__shade,.gy-carousel__shade--solar { background: linear-gradient(0deg,rgba(3,10,18,.9),rgba(3,10,18,.61) 52%,rgba(3,10,18,.08)); }
  .gy-carousel__slide .gy-hero__copy,
  .logged-in .gy-carousel__slide .gy-hero__copy { top: 130px; bottom: auto; }
  .gy-carousel__tabs { grid-template-columns: repeat(4,1fr); gap: 6px; }
  .gy-carousel__tabs button { display: flex; justify-content: center; min-height: 36px; border: 1px solid rgba(255,255,255,.2); }
  .gy-carousel__tabs button.is-active { border-color: #b9de5f; }
  .gy-carousel__tabs span { display: none; }
  .gy-carousel__arrows { display: none; }
  .gy-carousel__controls { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .gy-carousel__slide,.gy-carousel__media img { transition-duration: .001ms !important; }
  .gy-carousel__slide.is-active .gy-hero__copy > *,
  .gy-carousel__slide.is-active .gy-carousel__energy,
  .gy-carousel__slide.is-active .gy-carousel__scan,
  .gy-carousel__progress i { animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
