/* Campus artwork and activity posters share the homepage's automatic carousel. */
.hv1-hero-shell {
  width: 100%;
  height: min(calc(760 * var(--u)), calc(100svh - 428 * var(--u)), 680px);
  min-height: min(calc(620 * var(--u)), 680px);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.hv1-hero-shell > [data-home-hero-panel] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.hv1-hero-shell > [data-home-hero-panel][hidden] { display: none !important; }
.activity-carousel {
  --activity-u: var(--u, calc(max(720px, 100vw) / 1920));
  --activity-main-width: 74%;
  --activity-side-turn: 35deg;
  --activity-side-scale: .84;
  --activity-side-depth: -380px;
  --activity-duration: 900ms;
  position: relative;
  height: min(calc(760 * var(--activity-u)), calc(100svh - 428 * var(--activity-u)), 680px);
  min-height: min(calc(620 * var(--activity-u)), 680px);
  padding: 0;
  overflow: hidden;
  background: #eaf3f8;
  color: #1e3c78;
  font-family: var(--design-text-font);
}
.activity-carousel, .activity-carousel * { box-sizing: border-box; }
.activity-carousel__stage {
  position: relative;
  height: 100%;
  perspective: 1800px;
  perspective-origin: 50% 50%;
  isolation: isolate;
}
.activity-carousel__slide {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--activity-main-width);
  height: 100%;
  margin: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transform: translateX(-50%) translateZ(-220px) scale(.7);
  transform-style: preserve-3d;
  transition: transform var(--activity-duration) cubic-bezier(.22,.68,.3,1), opacity 650ms ease, filter var(--activity-duration) ease;
  filter: brightness(.82);
}
.activity-carousel__slide[data-position="current"] {
  z-index: 3;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateZ(0) rotateY(0) scale(1);
  filter: brightness(1);
}
.activity-carousel__slide[data-position="previous"] {
  z-index: 2;
  opacity: .78;
  pointer-events: auto;
  transform: translateX(-99%) translateZ(var(--activity-side-depth)) rotateY(var(--activity-side-turn)) scale(var(--activity-side-scale));
  filter: saturate(.58) contrast(.76) brightness(1.04);
}
.activity-carousel__slide[data-position="next"] {
  z-index: 2;
  opacity: .78;
  pointer-events: auto;
  transform: translateX(-1%) translateZ(var(--activity-side-depth)) rotateY(calc(-1 * var(--activity-side-turn))) scale(var(--activity-side-scale));
  filter: saturate(.58) contrast(.76) brightness(1.04);
}
.activity-carousel__slide[data-position="far-next"] { transform: translateX(85%) translateZ(-220px) rotateY(-45deg) scale(.7); }
.activity-carousel__slide[data-position="far-previous"] { transform: translateX(-185%) translateZ(-220px) rotateY(45deg) scale(.7); }
.activity-carousel__link {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #075599;
  border: 0;
  border-radius: 0;
  box-shadow: 0 10px 28px #173e762d;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.activity-carousel__slide[data-position="current"] .activity-carousel__link { box-shadow: 0 10px 26px #173e7629; }
.activity-carousel .activity-carousel__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.activity-carousel__video-wrap { position:relative; background:#000; cursor:default; }
.activity-carousel__video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:#000; }
.activity-carousel__slide[data-kind="campus"] .activity-carousel__link { background: #eff9fd; }
.activity-carousel__campus-art { position: relative; width: 100%; height: 100%; }
.activity-carousel .activity-carousel__campus-base,
.activity-carousel__campus-ribbons { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.campus-scene__building,
.campus-scene__lettering { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; }
.campus-scene__building { z-index: 1; transform-origin: 53.6458% 74.3519%; }
.campus-scene__building[data-building-state="hidden"] { visibility: hidden; }
.campus-scene__building[data-building-state="outgoing"] { animation: campus-lines-gather 900ms cubic-bezier(.4,0,.2,1) both; will-change: transform, clip-path, opacity; }
.campus-scene__building[data-building-state="incoming"] { z-index: 2; animation: campus-lines-unfold 900ms cubic-bezier(.4,0,.2,1) both; will-change: transform, clip-path, opacity; }
.campus-scene__lettering { z-index: 3; }
.activity-carousel__campus-ribbons { z-index: 4; pointer-events: none; }
.activity-carousel .activity-carousel__campus-ribbons img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
@keyframes campus-lines-gather {
  0% { opacity: 1; clip-path: polygon(0 0,100% 0,100% 100%,0 100%); transform: translateY(0) scaleX(1); }
  25% { opacity: .9; clip-path: polygon(32% 0,76% 0,76% 100%,32% 100%); transform: translateY(-2px) scaleX(.98); }
  70% { opacity: .3; clip-path: polygon(52% 0,55% 0,55% 100%,52% 100%); transform: translateY(-6px) scaleX(.82); }
  100% { opacity: 0; clip-path: polygon(53.6458% 0,53.6458% 0,53.6458% 100%,53.6458% 100%); transform: translateY(-8px) scaleX(.76); }
}
@keyframes campus-lines-unfold {
  0% { opacity: 0; clip-path: polygon(53.6458% 0,53.6458% 0,53.6458% 100%,53.6458% 100%); transform: translateY(8px) scaleX(.8); }
  20% { opacity: .25; clip-path: polygon(50% 0,57% 0,57% 100%,50% 100%); transform: translateY(6px) scaleX(.88); }
  65% { opacity: .95; clip-path: polygon(32% 0,76% 0,76% 100%,32% 100%); transform: translateY(2px) scaleX(.98); }
  100% { opacity: 1; clip-path: polygon(0 0,100% 0,100% 100%,0 100%); transform: translateY(0) scaleX(1); }
}
.activity-carousel a:focus-visible, .activity-carousel button:focus-visible, .activity-carousel:focus-visible { outline: 2px solid #00aeca; outline-offset: 3px; }
.activity-carousel__slide[data-position="previous"] .activity-carousel__link:focus-visible, .activity-carousel__slide[data-position="next"] .activity-carousel__link:focus-visible { outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) {
  .activity-carousel { --activity-duration: 0ms; }
  .activity-carousel__slide { transition: none; }
  .campus-scene__building { animation: none !important; }
}
