/*
 * ONSOFT Design System B (Infra Dark) — tokens v0.1
 * 상태: INTERNAL USE ONLY / 작성: (주)온소프트 사업개발 이사
 * 기준: HANDOFF_ONSOFT-WEB_V0.1-S1 §2 + B-InfraDark.dc.html 목업
 * 문서: docs/specs/ONSOFT_DS_B_v0_1.md
 * 대비 검증: node scripts/check-contrast.mjs
 *
 * 테마 (2026-11-04 Jason 결정: 다크 고정, 라이트 토큰은 보존)
 * - 기본: 다크 고정 (OS 설정 무관)
 * - <html data-theme="auto">  : OS 설정 추종 (prefers-color-scheme: light 시 라이트 세트)
 * - <html data-theme="light"> : 라이트 강제
 */

/* ---------- 폰트 (자체 호스팅, 런타임 외부 요청 없음) ---------- */
@font-face {
  font-family: 'Pretendard';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('../font/Pretendard-Regular.subset.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('../font/Pretendard-SemiBold.subset.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('../font/Pretendard-Bold.subset.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('../font/JetBrainsMono-Regular.subset.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('../font/JetBrainsMono-Medium.subset.woff2') format('woff2');
}

/* @theme dark */
:root {
  color-scheme: dark;

  /* 색 — 면 */
  --bg: #0B1020;
  --surface: #0E1528;
  --grid: #141C30;
  --line: #1F2A44;
  --line-strong: #2A3756;

  /* 색 — 텍스트 */
  --text: #E6EAF2;
  --text-subtle: #C3CBDA;
  --text-muted: #9AA4B8;

  /* 색 — 행동 */
  --accent: #4C8DFF;
  --accent-hover: #6FA3FF;
  --on-accent: #0B1020;
  --link: #7FB0FF;
  --link-hover: #B3D0FF;
  --inverse: #E6EAF2;
  --inverse-hover: #FFFFFF;
  --on-inverse: #0B1020;
  --focus: #7FB0FF;

  /* 색 — 포인트·코드 */
  --point: #F89E1C;
  --code-del: #FF8F8F;
  --code-add: #8FE3A8;
  --code-comment: #7D88A0; /* 목업 #6B7690(3.99:1) → 4.5:1 충족 위해 보정 */

  /* 색 — CI 심볼 (장식 전용, 텍스트 사용 금지) */
  --brand-orange: #F89E1C;
  --brand-red: #E0262B;
  --brand-blue: #2A5BD7;
  --brand-lime: #C5D72D;
}

/* @theme light */
@media (prefers-color-scheme: light) {
  :root[data-theme='auto'] {
    color-scheme: light;
    --bg: #F5F7FB;
    --surface: #FFFFFF;
    --grid: #E8ECF4;
    --line: #D8DEE9;
    --line-strong: #C2CBDA;
    --text: #0B1020;
    --text-subtle: #2A3550;
    --text-muted: #4A5670;
    --accent: #1F5FD1;
    --accent-hover: #1A4FB0;
    --on-accent: #FFFFFF;
    --link: #1A4FB0;
    --link-hover: #143F8F;
    --inverse: #0B1020;
    --inverse-hover: #2A3550;
    --on-inverse: #FFFFFF;
    --focus: #1A4FB0;
    --point: #9A5200; /* 심볼 주황은 흰 배경 텍스트 대비 미달 → 텍스트용 짙은 주황 */
    --code-del: #B42318;
    --code-add: #137A3A;
    --code-comment: #5B667D;
  }
}
:root[data-theme='light'] {
  color-scheme: light;
  --bg: #F5F7FB;
  --surface: #FFFFFF;
  --grid: #E8ECF4;
  --line: #D8DEE9;
  --line-strong: #C2CBDA;
  --text: #0B1020;
  --text-subtle: #2A3550;
  --text-muted: #4A5670;
  --accent: #1F5FD1;
  --accent-hover: #1A4FB0;
  --on-accent: #FFFFFF;
  --link: #1A4FB0;
  --link-hover: #143F8F;
  --inverse: #0B1020;
  --inverse-hover: #2A3550;
  --on-inverse: #FFFFFF;
  --focus: #1A4FB0;
  --point: #9A5200;
  --code-del: #B42318;
  --code-add: #137A3A;
  --code-comment: #5B667D;
}

/* ---------- 테마 무관 토큰 ---------- */
:root {
  /* 서체 */
  --font-sans: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Pretendard', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* 글자 크기 (목업 1440 기준, 대형은 모바일 축소) */
  --fs-label: 12px;   /* 모노 라벨·코드 헤더 */
  --fs-eyebrow: 13px; /* // section 표지, 배지 */
  --fs-sm: 14px;      /* 내비·푸터·단계 설명·코드 */
  --fs-body: 15px;    /* 카드 본문·버튼 */
  --fs-h4: 18px;      /* 단계 제목·PRIVATE 안내 */
  --fs-lead: 19px;    /* 히어로 리드 */
  --fs-h3: 20px;      /* 카드 제목 */
  --fs-h2-sm: 24px;   /* 특허·연혁 제목 */
  --fs-stat: clamp(22px, 2.4vw, 28px);
  --fs-h2: clamp(28px, 3.4vw, 36px);
  --fs-display: clamp(40px, 6.2vw, 68px);

  --fw-regular: 400;
  --fw-medium: 500; /* JetBrains Mono 전용. Pretendard 500은 미탑재(400으로 대체) */
  --fw-semibold: 600;
  --fw-bold: 700;

  --lh-tight: 1.15;
  --lh-body: 1.7;
  --lh-code: 1.8;
  --ls-display: -0.03em;
  --ls-wordmark: 0.08em;

  /* 간격 (목업 실측값 스케일) */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 28px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;

  /* 섹션 상하 여백 (88~104px, 모바일 축소) */
  --section-y: clamp(56px, 7vw, 88px);
  --section-y-lg: clamp(64px, 7.5vw, 96px);
  --section-y-hero: clamp(64px, 8vw, 104px);

  /* 레이아웃 */
  --container: 1240px;
  --gutter: clamp(16px, 3vw, 32px);
  --grid-size: 64px;

  /* 반경 */
  --r-btn: 6px;
  --r-card: 10px;
  --r-media: 12px;
  --r-pill: 999px;

  /* 터치 타깃 */
  --tap: 44px;
  --tap-lg: 48px;

  /* 모션 */
  --dur: 160ms;
  --ease: cubic-bezier(0.2, 0, 0, 1);
}
