/* Pretendard 자체호스팅 (PWA 오프라인·프리로드 유지 — CDN import 제거) */
@font-face {
  font-family: "Pretendard Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 45 920;
  src: url("/brand/fonts/PretendardVariable.woff2") format("woff2-variations");
}

:root {
  --ftn-midnight: #102a43;
  --ftn-route-blue: #146cff;
  --ftn-route-blue-dark: #0758c9;
  --ftn-route-blue-light: #4b8cff;
  --ftn-discovery-lime: #c8f04a;
  --ftn-sky: #dff3ff;
  --ftn-sand: #f5f1e8;
  --ftn-coral: #ff705d;
  --ftn-neutral-950: #121820;
  --ftn-neutral-700: #46515e;
  --ftn-neutral-500: #707c89;
  --ftn-neutral-300: #c9d0d7;
  --ftn-neutral-150: #e8ecef;
  --ftn-neutral-050: #f7f9fa;
  --ftn-white: #ffffff;
  --ftn-font: "Pretendard Variable", Pretendard, "Noto Sans KR", "Noto Sans SC", "Noto Sans JP", system-ui, sans-serif;
  --ftn-radius-sm: 8px;
  --ftn-radius-md: 12px;
  --ftn-radius-lg: 18px;
  --ftn-radius-xl: 24px;
  --ftn-radius-pill: 999px;
  --ftn-shadow-card: 0 2px 8px rgb(16 42 67 / 8%);
  --ftn-shadow-panel: 0 12px 32px rgb(16 42 67 / 14%);
}

html, body, button, input, select, textarea { font-family: var(--ftn-font); }
.ftn-logo { display: block; width: auto; height: 42px; }
.ftn-title { color: var(--ftn-midnight); font-size: clamp(1.75rem, 6vw, 2.5rem); font-weight: 750; letter-spacing: -.015em; line-height: 1.12; }
.ftn-body { color: var(--ftn-neutral-700); font-size: 1rem; font-weight: 450; letter-spacing: 0; line-height: 1.6; }
.ftn-button { min-height: 48px; border: 0; border-radius: var(--ftn-radius-md); padding: 0 20px; background: var(--ftn-route-blue); color: var(--ftn-white); font: 650 1rem/1 var(--ftn-font); cursor: pointer; transition: transform 160ms ease, background-color 160ms ease; }
.ftn-button:hover { background: var(--ftn-route-blue-dark); }
.ftn-button:active { transform: translateY(1px); }
.ftn-button:focus-visible { outline: 3px solid var(--ftn-discovery-lime); outline-offset: 3px; }
.ftn-button:disabled { cursor: not-allowed; opacity: .48; }
.ftn-card { overflow: hidden; border: 1px solid var(--ftn-neutral-150); border-radius: var(--ftn-radius-lg); background: var(--ftn-white); box-shadow: var(--ftn-shadow-card); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
