.bori_nav_menu_wrap{
	--snow-fall-distance:150px;
	--snow-cont-width-pds:calc(100% + 34px);
}

.bori_nav_menu_wrap:has(.bori_nvmn_introd){
	--snow-fall-distance:210px;
	--snow-cont-width-pds:100%;
}

#boriSnowFlakeCont{position:absolute;top:0;left:0;width:100%;height:100%;width:var(--snow-cont-width-pds, 100%);height:calc(100% + 30px);overflow:hidden;pointer-events:none;opacity:0.6;margin-top:-15px;}
#boriSnowFlakeCont:where(.snowFlakeLogin){margin-left:-17px;}

/* 1. 공통: 모든 눈송이는 떨어진다 (위치 이동 담당) */
.snowflake {
  position: absolute;
  top: -30px;
  color: white;
  pointer-events: none;
  z-index: 1000;
  animation-name: snowflakeFall; /* 애니메이션 이름 지정 */
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* 2. 동그란 눈송이 스타일 */
.snowflake.dot {
  background: white;
  border-radius: 50%;
  opacity: 0.8;
}

/* 3. 눈꽃 모양 내부 회전 담당 (회전 담당) */
.snow-rotate {
  width: 100%;
  height: 100%;
  /* 자식 요소가 제자리에서 돔 */
  animation: snowflakeSpin linear infinite;
}

/* 떨어지는 애니메이션 */
@keyframes snowflakeFall {
	95%{opacity:1;}
  to {
		opacity:0.2;
    transform: translateY(var(--snow-fall-distance, 150px));
  }
}

/* 빙글빙글 도는 애니메이션 (SVG용) */
@keyframes snowflakeSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}