


#bloom-ambient-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  opacity: .55;
  mix-blend-mode: multiply;
}
.dark #bloom-ambient-canvas { opacity: .35; mix-blend-mode: screen; }


body > * { position: relative; z-index: 2; }
#bloom-ambient-canvas { z-index: 0; }


.bloom-hero-3d {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  touch-action: none;
}
.bloom-hero-3d canvas { display: block; width: 100%; height: 100%; }


.aspect-square.overflow-hidden,
.img-wrap {
  isolation: isolate;
}
.aspect-square.overflow-hidden::after,
.img-wrap::after {
  content: '';
  position: absolute;
  inset: auto 10px 10px auto;
  width: 26px;
  height: 26px;
  opacity: .22;
  pointer-events: none;
  z-index: 3;
  background-repeat: no-repeat;
  background-size: contain;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.15));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg transform='translate(20,20) scale(0.85)'%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.95'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.85' transform='rotate(51.43)'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.95' transform='rotate(102.86)'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.85' transform='rotate(154.29)'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.95' transform='rotate(205.71)'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.85' transform='rotate(257.14)'/%3E%3Cellipse cx='0' cy='-10' rx='4.3' ry='9' fill='white' opacity='.95' transform='rotate(308.57)'/%3E%3Ccircle cx='0' cy='0' r='5' fill='white'/%3E%3C/g%3E%3C/svg%3E");
}
.dark .aspect-square.overflow-hidden::after,
.dark .img-wrap::after { opacity: .28; }


.bloom-tilt {
  transform-style: preserve-3d;
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s cubic-bezier(.16,1,.3,1);
  will-change: transform;
}
.bloom-tilt .img-wrap,
.bloom-tilt > a:first-child {
  transform: translateZ(18px);
}


.slider-slide .slide-bg img {
  transform: scale(1.12);
  opacity: .001;
  transition: transform 6.5s cubic-bezier(.16,1,.3,1), opacity 1s ease-out;
}
.slider-slide.active .slide-bg img {
  transform: scale(1);
  opacity: 1;
}


.btn-hero, .btn-magnetic {
  position: relative;
  overflow: hidden;
  will-change: transform;
}
.bloom-ripple {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  background: rgba(255,255,255,.55);
  pointer-events: none;
  animation: bloom-ripple-anim .6s ease-out forwards;
}
@keyframes bloom-ripple-anim {
  to { transform: scale(2.6); opacity: 0; }
}


::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: .55s;
  animation-timing-function: cubic-bezier(.16,1,.3,1);
}
::view-transition-old(root) { animation-name: bloom-fade-out; }
::view-transition-new(root) { animation-name: bloom-fade-in; }
@keyframes bloom-fade-out { to { opacity: 0; transform: scale(.98); } }
@keyframes bloom-fade-in { from { opacity: 0; transform: scale(1.02); } }

@media (prefers-reduced-motion: reduce) {
  #bloom-ambient-canvas, .bloom-hero-3d { display: none !important; }
  .bloom-tilt { transition: none !important; transform: none !important; }
  .slider-slide { transition: opacity .3s ease !important; transform: none !important; filter: none !important; }
}
