html { scroll-behavior: smooth; }
body { font-family: 'Pretendard', 'Noto Sans KR', system-ui, sans-serif; background: #fff; }

/* ── 한글 줄바꿈: 단어 단위로 끊고(중간 쪼개짐 방지), 넘침은 안전하게 ── */
html, body { word-break: keep-all; overflow-wrap: break-word; }

/* 일반 문장용 유틸 (한글 단어 보존) */
.text-keep { word-break: keep-all; overflow-wrap: break-word; }
/* 코드/이메일/URL/API endpoint용 유틸 (어디서든 줄바꿈 허용, 넘침 방지) */
.text-code-break { word-break: normal; overflow-wrap: anywhere; }

::selection { background: #2DD4C4; color: #0A2540; }

/* Keyboard focus visibility (a11y) — only shows on keyboard nav, not mouse */
:focus-visible { outline: 3px solid #1B6FE0; outline-offset: 2px; border-radius: 4px; }
a:focus-visible, button:focus-visible { outline: 3px solid #1B6FE0; outline-offset: 3px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #1B6FE0; outline-offset: 1px; }
/* On dark hero/CTA sections use the mint accent for contrast */
[style*="0A2540"] a:focus-visible, [style*="0A2540"] button:focus-visible { outline-color: #2DD4C4; }

@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.animate-\[float_6s_ease-in-out_infinite\]:nth-of-type(2) { animation-delay: -1.5s; }
.animate-\[float_6s_ease-in-out_infinite\]:nth-of-type(3) { animation-delay: -3s; }
.animate-\[float_6s_ease-in-out_infinite\]:nth-of-type(4) { animation-delay: -4.5s; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
