body {
  font-family: 'Noto Sans KR', system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.75;
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
    line-height: 1.7;
  }
}

.lang-en { display: none; }
html[lang="en"] .lang-ko { display: none; }
html[lang="en"] .lang-en { display: inline; }
html[lang="en"] .lang-en-block { display: block; }
html[lang="en"] .lang-ko-block { display: none; }
.lang-en-block { display: none; }
.lang-ko-block { display: block; }
.nav-dropdown:hover .dropdown-menu { display: block; }
.hero-gradient {
  background: linear-gradient(135deg, rgba(30, 58, 138, 0.92) 0%, rgba(37, 99, 235, 0.85) 50%, rgba(14, 165, 233, 0.8) 100%);
}
.card-hover { transition: transform 0.25s ease, box-shadow 0.25s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 12px 24px -8px rgb(0 0 0 / 0.15); }
#notice-popup.np-hidden { display: none !important; }
#notice-popup { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 1rem; }
#notice-popup .np-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.55); }

#notice-popup .np-box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: min(90vw, 56rem);   /* 화면의 90% 또는 최대 896px */
  max-height: 90vh;              /* 화면 높이의 90%까지 */
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.35);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#img-popup.np-hidden {
  display: none;
}

#img-popup:not(.np-hidden) {
  display: flex;
}