/* 드림하이학원 공통 애니메이션 · 움직임 줄이기 설정을 켠 기기에서는 모두 꺼집니다 */
@media (prefers-reduced-motion:no-preference){
  /* 페이지 들어올 때 · 나갈 때 */
  html.dh-m body{animation:dhmFade .45s ease both}
  html.dh-m.dh-leave body{opacity:0;transition:opacity .16s ease}
  html.dh-m:not(.dh-lite) .dh-nav{animation:dhmDown .6s cubic-bezier(.2,.8,.2,1) both}
  html.dh-m:not(.dh-lite) .dh-util{animation:dhmFade .6s ease both}

  /* 스크롤하면 하나씩 떠오르기 */
  html.dh-m [data-rv]{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transition-delay:var(--rvd,0s)}
  html.dh-m [data-rv].rv-in{opacity:1;transform:none}
  html.dh-m [data-rv="zoom"]{transform:scale(.94) translateY(14px)}
  html.dh-m [data-rv="zoom"].rv-in{transform:none}

  /* 위쪽 메뉴: 밑줄이 자라나는 효과 */
  html.dh-m .dh-menu a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:4px;background:#B8DC45;border-radius:4px 4px 0 0;transform:scaleX(0);transform-origin:50% 100%;transition:transform .32s cubic-bezier(.2,.8,.2,1)}
  html.dh-m .dh-menu a:hover::after,html.dh-m .dh-menu a.on::after{transform:scaleX(1)}
  html.dh-m .dh-menu a{transition:color .2s}
  html.dh-m .dh-mnav a{transition:background .2s,color .2s,transform .15s}
  html.dh-m .dh-logo .dh-moon{transition:transform .5s cubic-bezier(.3,1.5,.5,1)}
  html.dh-m .dh-logo:hover .dh-moon{transform:rotate(-14deg) scale(1.08)}

  /* 누르는 느낌 */
  html.dh-m:not(.dh-lite) :where(button,.btn,.dh-btn,.tbtn,.dh-mnav a,.ex-chip,.ex-cat,.ex-all):active{transform:scale(.96)}
  html.dh-m :where(.btn,.dh-btn,.tbtn,.gbtn2){transition:transform .15s,filter .2s,box-shadow .2s,background .2s}
  html.dh-m :where(.btn,.dh-btn,.tbtn,.gbtn2):hover{filter:brightness(1.04)}

  /* 카드가 살짝 떠오르는 효과 */
  html.dh-m:not(.dh-lite) :is(.room,.bk,a.gcard,.ah-card,.pc){transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
  html.dh-m:not(.dh-lite) :is(.room,.bk,a.gcard,.ah-card,.pc):hover{transform:translateY(-6px);box-shadow:0 22px 38px -20px rgb(60 90 10 / .55)}
  html.dh-m:not(.dh-lite) .room .ic,html.dh-m:not(.dh-lite) .ah-card .ic{transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
  html.dh-m:not(.dh-lite) .room:hover .ic,html.dh-m:not(.dh-lite) .ah-card:hover .ic{transform:scale(1.1) rotate(-6deg)}
  html.dh-m:not(.dh-lite) .room .go{transition:transform .25s}
  html.dh-m:not(.dh-lite) .room:hover .go{transform:translateX(5px)}
  html.dh-m:not(.dh-lite) .bk .cv{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
  html.dh-m:not(.dh-lite) .bk:hover .cv{transform:scale(1.04)}

  /* 홈 첫 화면: 초승달 · 별 · 빛 */
  html.dh-m .moonwrap>svg{animation:dhmFloat 6s ease-in-out infinite}
  html.dh-m .glow{animation:dhmPulse 5s ease-in-out infinite}
  html.dh-m .star{animation:dhmTwinkle 3.2s ease-in-out infinite}
  html.dh-m .star:nth-of-type(2){animation-delay:-1.1s}
  html.dh-m .star:nth-of-type(3){animation-delay:-2.2s}
  html.dh-m .hero h1 em{background-repeat:no-repeat;background-size:100% 100%;animation:dhmMark 1.1s .7s cubic-bezier(.2,.8,.2,1) both}
  html.dh-m .hero .scene,html.dh-m .gatehero .scene{animation:dhmDrift 24s ease-in-out infinite alternate;transform-origin:50% 100%}

  /* 로그인 카드 */
  html.dh-m .gatehero .gcard,html.dh-m:not(.dh-lite) .card{animation:dhmPop .6s .05s cubic-bezier(.2,.9,.3,1.2) both}

  /* 창(모달)이 열릴 때 */
  html.dh-m:not(.dh-lite) .overlay:not([hidden]){animation:dhmFade .25s ease both}
  html.dh-m:not(.dh-lite) .overlay:not([hidden])>.modal,html.dh-m:not(.dh-lite) .overlay:not([hidden])>div{animation:dhmPop .35s cubic-bezier(.2,.9,.3,1.15) both}

  /* 불러오는 중 글자 */
  html.dh-m:not(.dh-lite) .gload,html.dh-m:not(.dh-lite) #loading .lead{animation:dhmBreathe 1.4s ease-in-out infinite}
}
@keyframes dhmFade{from{opacity:0}to{opacity:1}}
@keyframes dhmDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes dhmPop{from{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}
@keyframes dhmFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(-3deg)}}
@keyframes dhmPulse{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
@keyframes dhmTwinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@keyframes dhmMark{from{background-size:0 100%}to{background-size:100% 100%}}
@keyframes dhmDrift{from{transform:scale(1.05) translateX(0)}to{transform:scale(1.05) translateX(-20px)}}
@keyframes dhmBreathe{0%,100%{opacity:.45}50%{opacity:1}}
/* 머리글 인스타·블로그 아이콘: 휴대폰에서는 처음부터 한 크기로 고정 (크기가 바뀌며 깜빡이던 문제 수정) */
@media (max-width:760px){
  .dh-nav .dh-ig,.dh-nav .dh-ig.sm,.dh-cta .dh-ig,.dh-cta .dh-ig.sm{width:30px!important;height:30px!important;border-radius:9px!important;box-shadow:none!important}
  .dh-nav .dh-ig svg,.dh-cta .dh-ig svg{width:17px!important;height:17px!important}
  .dh-nav .dh-blog svg,.dh-cta .dh-blog svg{width:20px!important;height:20px!important}
  .dh-nav .dh-sns,.dh-cta .dh-sns{gap:6px!important}
}
