/*
 * V119 | Exact V109 Projects UI + higher custom Fuji + CSS shooting stars.
 * The project layout and interaction structure remain unchanged.
 */
:root {
  --fuji-v119-home-desktop: url('/assets/japanese-fuji-custom-v119-more-raised-home-desktop.png');
  --fuji-v119-home-mobile: url('/assets/japanese-fuji-custom-v119-more-raised-home-mobile.png');
  --fuji-v119-project-desktop: url('/assets/japanese-fuji-custom-v119-more-raised-project-desktop.png');
  --fuji-v119-project-mobile: url('/assets/japanese-fuji-custom-v119-more-raised-project-mobile.png');
}

#fuji-mobile-fallback-v94 {
  background-color: #061844;
  background-image: var(--fuji-v119-home-desktop), url('/assets/japanese-fuji-responsive-v109.svg?v=109');
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 100% 100%;
}

html.fuji-project-view-v119 #fuji-mobile-fallback-v94,
body.fuji-project-view-v119 #fuji-mobile-fallback-v94,
html[data-project-style-v104='true'] #fuji-mobile-fallback-v94,
body[data-project-style-v104='true'] #fuji-mobile-fallback-v94 {
  background-image: var(--fuji-v119-project-desktop), url('/assets/japanese-fuji-responsive-v109.svg?v=109');
}

/* Recovery only: preserve the V109 DOM and reveal the existing fixed fallback. */
html.fuji-webgl-unavailable-v119 #canvas > canvas,
html.fuji-webgl-lost-v119 #canvas > canvas {
  opacity: 0 !important;
}

/*
 * Shooting stars: compiled plain HTML/CSS equivalent of the supplied Pug/SCSS.
 * It remains a non-interactive sky layer, behind clouds and snowfall.
 */
#shooting-stars-v119 {
  position: fixed;
  left: -18vw;
  top: -28vh;
  width: 142vw;
  height: 88vh;
  overflow: hidden;
  pointer-events: none;
  z-index: 4;
  transform: rotateZ(45deg) translateZ(0);
  transform-origin: 50% 50%;
  contain: layout paint style;
  isolation: isolate;
  opacity: .88;
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 74%, transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 74%, transparent 100%);
}

.shooting-star-v119 {
  position: absolute;
  left: var(--left);
  top: var(--top);
  width: 0;
  height: 2px;
  border-radius: 999px;
  opacity: var(--opacity, .84);
  background: linear-gradient(-45deg, rgba(95,145,255,1), rgba(0,0,255,0));
  filter: drop-shadow(0 0 6px rgba(105,155,255,1));
  will-change: width, transform, opacity;
  animation:
    shooting-tail-v119 var(--duration, 3000ms) ease-in-out infinite,
    shooting-move-v119 var(--duration, 3000ms) ease-in-out infinite;
  animation-delay: var(--delay, 0ms);
}

.shooting-star-v119::before,
.shooting-star-v119::after {
  content: '';
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 0;
  height: 2px;
  border-radius: 100%;
  background: linear-gradient(-45deg, rgba(0,0,255,0), rgba(135,184,255,1), rgba(0,0,255,0));
  animation: shooting-shine-v119 var(--duration, 3000ms) ease-in-out infinite;
  animation-delay: var(--delay, 0ms);
}
.shooting-star-v119::before { transform: translateX(50%) rotateZ(45deg); }
.shooting-star-v119::after  { transform: translateX(50%) rotateZ(-45deg); }

@keyframes shooting-tail-v119 {
  0%   { width: 0; opacity: 0; }
  12%  { opacity: var(--opacity, .84); }
  30%  { width: var(--length, 100px); }
  72%  { opacity: var(--opacity, .84); }
  100% { width: 0; opacity: 0; }
}
@keyframes shooting-shine-v119 {
  0%, 100% { width: 0; }
  50%      { width: var(--shine, 30px); }
}
@keyframes shooting-move-v119 {
  0%   { transform: translate3d(0,0,0); }
  100% { transform: translate3d(var(--travel, 340px),0,0); }
}

html.fuji-project-view-v119 #shooting-stars-v119,
body.fuji-project-view-v119 #shooting-stars-v119 {
  opacity: .74;
}

@media (max-width: 767px), (orientation: portrait) {
  #fuji-mobile-fallback-v94 {
    background-image: var(--fuji-v119-home-mobile), url('/assets/japanese-fuji-responsive-v109.svg?v=109');
  }
  html.fuji-project-view-v119 #fuji-mobile-fallback-v94,
  body.fuji-project-view-v119 #fuji-mobile-fallback-v94,
  html[data-project-style-v104='true'] #fuji-mobile-fallback-v94,
  body[data-project-style-v104='true'] #fuji-mobile-fallback-v94 {
    background-image: var(--fuji-v119-project-mobile), url('/assets/japanese-fuji-responsive-v109.svg?v=109');
  }
  #shooting-stars-v119 {
    left: -46vw;
    top: -18vh;
    width: 190vw;
    height: 70vh;
    opacity: .72;
  }
  .shooting-star-v119 {
    height: 1.5px;
    --length: 76px;
    --shine: 22px;
    --travel: 230px;
  }
}

@media (max-height: 620px) and (orientation: landscape) {
  #shooting-stars-v119 { top: -42vh; height: 100vh; opacity: .67; }
}

@media (prefers-reduced-motion: reduce) {
  #canvas > canvas { transition: none !important; }
  #shooting-stars-v119 { display: none !important; }
}

@media print {
  #shooting-stars-v119 { display: none !important; }
}
