html { scroll-behavior: smooth; }
body { font-family: 'Pretendard', system-ui, sans-serif; color: #241818; word-break: keep-all;
  background:
    radial-gradient(1200px 600px at 85% -10%, #FDE6DD 0%, transparent 60%),
    radial-gradient(900px 500px at 0% 30%, #FBDDD2 0%, transparent 60%),
    #F9CDBE; }

/* 접힌 모서리 카드 (포스터 카드 재현) */
.card-fold { position: relative; background: #fff; border-radius: 22px;
  box-shadow: 0 1px 0 rgba(169,35,43,.06), 0 10px 24px -8px rgba(169,35,43,.22), 0 28px 60px -24px rgba(140,28,36,.25); }
.card-fold::after { content: ''; position: absolute; top: 0; right: 0; width: 34px; height: 34px;
  background: linear-gradient(225deg, #F9CDBE 0 50%, #F2A391 50% 100%);
  border-top-right-radius: 22px; border-bottom-left-radius: 8px; pointer-events: none; }

/* 빨간 알약 라벨 */
.pill-label { display: inline-flex; align-items: center; gap: .4rem; background: #D9432F; color: #fff;
  font-family: 'Jua', sans-serif; padding: .35rem 1rem; border-radius: 999px; font-size: 1.05rem; box-shadow: 0 3px 0 #8C1C24; }

/* 버튼 — hover / focus / active / disabled */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 700;
  border-radius: 999px; padding: .95rem 1.6rem; line-height: 1.1; cursor: pointer; user-select: none; text-align: center;
  transition: transform .18s ease, opacity .18s ease, background-color .18s ease, box-shadow .18s ease, color .18s ease; }
.btn:focus { outline: none; }
.btn:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px #EC5A43; }
.btn:active { transform: scale(.98) translateY(2px); }
.btn[aria-disabled="true"], .btn:disabled { opacity: .5; cursor: not-allowed; transform: none !important; }

.btn-primary { background: #EC5A43; color: #fff; box-shadow: 0 4px 0 #A9232B, 0 14px 28px -10px rgba(217,67,47,.6); }
.btn-primary:hover:not([aria-disabled="true"]):not(:disabled) { background: #D9432F; transform: scale(1.02); }
.btn-primary:active { box-shadow: 0 2px 0 #A9232B; }
.btn-primary:focus-visible { box-shadow: 0 4px 0 #A9232B, 0 0 0 3px #fff, 0 0 0 6px #EC5A43; }

.btn-light { background: #fff; color: #A9232B; box-shadow: 0 4px 0 #F2A391, 0 12px 24px -12px rgba(169,35,43,.35); }
.btn-light:hover:not([aria-disabled="true"]) { background: #FFF6F2; transform: scale(1.02); }
.btn-light:active { box-shadow: 0 2px 0 #F2A391; }

.btn-ghost { background: transparent; color: #A9232B; border: 2px solid #A9232B; padding: .8rem 1.3rem; }
.btn-ghost:hover:not([aria-disabled="true"]) { background: #A9232B; color: #fff; transform: scale(1.02); }

.nav-link { position: relative; font-weight: 600; color: #3B2A2A; padding: .25rem 0; transition: color .18s ease; }
.nav-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: #EC5A43;
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav-link:hover { color: #D9432F; }
.nav-link:hover::after, .nav-link:focus-visible::after { transform: scaleX(1); }
.nav-link:focus { outline: none; }

/* 탭 */
.tab { font-family: 'Jua', sans-serif; font-size: 1.1rem; padding: .7rem 1.1rem; border-radius: 999px; color: #A9232B;
  background: rgba(255,255,255,.6); white-space: nowrap; cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease; }
.tab:hover { background: #fff; transform: translateY(-2px); }
.tab:focus { outline: none; }
.tab:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px #EC5A43; }
.tab:active { transform: scale(.97); }
.tab[aria-selected="true"] { background: #EC5A43; color: #fff; box-shadow: 0 3px 0 #A9232B; }

/* 칩 (필터) */
.chip { font-weight: 700; font-size: .9rem; padding: .55rem 1rem; border-radius: 999px; border: 2px solid #FAD3C6; background: #fff; color: #3B2A2A;
  cursor: pointer; white-space: nowrap; transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease; }
.chip:hover { border-color: #F27A62; color: #D9432F; transform: translateY(-1px); }
.chip:focus { outline: none; }
.chip:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 5px #EC5A43; }
.chip:active { transform: scale(.96); }
.chip[aria-pressed="true"] { background: #EC5A43; border-color: #EC5A43; color: #fff; }

.field { width: 100%; border: 2px solid #FAD3C6; background: #FFF6F2; border-radius: 14px; padding: .8rem 1rem; font-size: 16px; font-weight: 500;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.field:hover { border-color: #F6BFAE; }
.field:focus { outline: none; border-color: #EC5A43; background: #fff; box-shadow: 0 0 0 4px rgba(236,90,67,.15); }

/* 정보 행 라벨 */
.info-key { flex-shrink: 0; border-radius: 6px; background: #FDE6DD; color: #D9432F; font-weight: 700; padding: .1rem .5rem; font-size: .85rem; height: fit-content; }

/* FAQ 아코디언 */
.faq summary { list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary:focus { outline: none; }
.faq summary:focus-visible { box-shadow: inset 0 0 0 3px #EC5A43; border-radius: 16px; }
.faq .faq-icon { transition: transform .2s ease; }
.faq[open] .faq-icon { transform: rotate(45deg); }

/* 장식 */
.cloud { position: absolute; background: #fff; border-radius: 999px; opacity: .85; filter: drop-shadow(0 6px 10px rgba(169,35,43,.12)); }
.cloud::before, .cloud::after { content: ''; position: absolute; background: #fff; border-radius: 999px; }
.cloud::before { width: 55%; height: 140%; left: 15%; bottom: 20%; }
.cloud::after { width: 40%; height: 110%; right: 12%; bottom: 25%; }
.float { animation: float 6s ease-in-out infinite; }
.float-slow { animation: float 9s ease-in-out infinite; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.flag { position: relative; display: inline-block; background: #FDE6DD; color: #D9432F; font-family: 'Jua', sans-serif;
  padding: .45rem 1.6rem .45rem 1.2rem; border-radius: 6px 0 0 6px; clip-path: polygon(0 0, 100% 0, 88% 50%, 100% 100%, 0 100%);
  box-shadow: inset 0 -3px 0 rgba(217,67,47,.15); }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-in { opacity: 1; transform: none; }

.toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0; transition: opacity .25s ease, transform .25s ease; pointer-events: none; z-index: 60; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

.mentor-card { transition: transform .2s ease, box-shadow .2s ease; }
.mentor-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px -12px rgba(169,35,43,.35); }
.mentor-card:focus { outline: none; }
.mentor-card:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px #EC5A43; }
.mentor-card:active { transform: scale(.98); }

.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

@media (prefers-reduced-motion: reduce) {
  .float, .float-slow { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}
