/* huijing-home2 — Hero 组件样式 */

.hj-hero {
  position: fixed;
  top: var(--hj-admin-offset, var(--hj2-admin-offset, 0px));
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  height: calc(100dvh - var(--hj-admin-offset, var(--hj2-admin-offset, 0px)));
  min-height: calc(100dvh - var(--hj-admin-offset, var(--hj2-admin-offset, 0px)));
  background-color: #1a1512;
  margin: 0;
  padding: 0;
  z-index: 1;
}

.hj-hero__base {
  position: absolute;
  inset: 0;
  z-index: 10;
  background-color: #1a1512;
  background-image: var(--hj-bg-base);
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
}

.hj-hero__reveal-wrap {
  position: absolute;
  inset: 0;
  z-index: 30;
  pointer-events: none;
}

.hj-hero__mask-canvas {
  position: absolute;
  inset: 0;
  display: none;
  pointer-events: none;
}

.hj-hero__reveal {
  position: absolute;
  inset: 0;
  z-index: 30;
  background-image: var(--hj-bg-reveal);
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  pointer-events: none;
  --hj-spot-x: -999px;
  --hj-spot-y: -999px;
  --hj-spot-r: 260px;
  opacity: 1;
  will-change: opacity;
  -webkit-mask-image: radial-gradient(
    circle var(--hj-spot-r) at var(--hj-spot-x) var(--hj-spot-y),
    #fff 0%,
    #fff 40%,
    rgba(255, 255, 255, 0.75) 60%,
    rgba(255, 255, 255, 0.4) 75%,
    rgba(255, 255, 255, 0.12) 88%,
    transparent 100%
  );
  mask-image: radial-gradient(
    circle var(--hj-spot-r) at var(--hj-spot-x) var(--hj-spot-y),
    #fff 0%,
    #fff 40%,
    rgba(255, 255, 255, 0.75) 60%,
    rgba(255, 255, 255, 0.4) 75%,
    rgba(255, 255, 255, 0.12) 88%,
    transparent 100%
  );
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.hj-hero__reveal.is-spot-idle {
  opacity: 0;
}

.hj-hero__text-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 50;
  pointer-events: none;
  opacity: 0.98;
  image-rendering: pixelated;
}

.hj-cloudSprite {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 55;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: 0 0;
  opacity: 0.58;
  filter: drop-shadow(0 10px 16px rgba(0,0,0,0.28)) drop-shadow(0 0 14px rgba(85,214,255,0.10));
  transform: translate(-50%, -50%);
  will-change: width, height, background-position, top, left;
  image-rendering: pixelated;
}

@keyframes hjHeroZoom {
  0% { transform: scale(1.12); }
  100% { transform: scale(1); }
}

.hj-anim-zoom {
  animation: hjHeroZoom 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@media (prefers-reduced-motion: reduce) {
  .hj-anim-zoom {
    animation: none;
    transform: none;
  }
}
