/* ============================================================
   UPINTER AXIS v3 — Design Tokens · 2026 Company Profile 정합
   생성 토큰 (수기 편집 금지) · 정본: tokens/upinter.tokens.json
   ------------------------------------------------------------
   브랜드 원색 #F9431C · 잉크 #121113 · 틴트 #FFF7F4
   작은 글자의 버밀리온은 #DE2F00 (흰 바탕 4.65:1) — 원색은 3.59:1로
   19px 볼드 이상 또는 면·그래픽에만 씁니다.
   ============================================================ */
:root {
  --up-vermilion-50: #FFF2EF;
  --up-vermilion-100: #FFE2DB;
  --up-vermilion-200: #FFC9BC;
  --up-vermilion-300: #FFA28D;
  --up-vermilion-400: #FF7457;
  --up-vermilion-500: #F9431C;
  --up-vermilion-600: #DE2F00;
  --up-vermilion-700: #B52100;
  --up-vermilion-800: #8D1600;
  --up-vermilion-900: #670D00;
  --up-neutral-0: #FFFFFF;
  --up-neutral-50: #FAFAFA;
  --up-neutral-100: #F6F6F6;
  --up-neutral-200: #EBEBEB;
  --up-neutral-300: #D9D9D9;
  --up-neutral-400: #BDBDBD;
  --up-neutral-500: #9E9E9E;
  --up-neutral-600: #7A7A7A;
  --up-neutral-700: #5F5F5F;
  --up-neutral-800: #3D3D3D;
  --up-neutral-900: #262626;
  --up-neutral-950: #121113;
  --up-neutral-1000: #000000;
  --up-tint-panel: #FFF7F4;
  --up-tint-strong: #FFF1EB;

  --up-fs-display: 96px; --up-lh-display: 0.96; --up-ls-display: -0.03em; --up-fw-display: 800;
  --up-fs-h1: 64px; --up-lh-h1: 1.02; --up-ls-h1: -0.025em; --up-fw-h1: 800;
  --up-fs-h2: 44px; --up-lh-h2: 1.12; --up-ls-h2: -0.02em; --up-fw-h2: 700;
  --up-fs-h3: 32px; --up-lh-h3: 1.22; --up-ls-h3: -0.015em; --up-fw-h3: 700;
  --up-fs-h4: 24px; --up-lh-h4: 1.32; --up-ls-h4: -0.01em; --up-fw-h4: 700;
  --up-fs-h5: 19px; --up-lh-h5: 1.42; --up-ls-h5: -0.005em; --up-fw-h5: 700;
  --up-fs-lead: 20px; --up-lh-lead: 1.65; --up-ls-lead: 0; --up-fw-lead: 400;
  --up-fs-body: 17px; --up-lh-body: 1.75; --up-ls-body: 0; --up-fw-body: 400;
  --up-fs-small: 15px; --up-lh-small: 1.68; --up-ls-small: 0; --up-fw-small: 400;
  --up-fs-micro: 13px; --up-lh-micro: 1.5; --up-ls-micro: 0; --up-fw-micro: 400;
  --up-fs-eyebrow: 13px; --up-lh-eyebrow: 1.4; --up-ls-eyebrow: 0.12em; --up-fw-eyebrow: 700;
  --up-fs-kicker: 15px; --up-lh-kicker: 1.4; --up-ls-kicker: 0.04em; --up-fw-kicker: 700;

  --up-space-1: 4px;
  --up-space-2: 8px;
  --up-space-3: 12px;
  --up-space-4: 16px;
  --up-space-5: 24px;
  --up-space-6: 32px;
  --up-space-7: 48px;
  --up-space-8: 64px;
  --up-space-9: 96px;
  --up-space-10: 128px;
  --up-space-11: 160px;

  --up-radius-none: 0px; --up-radius-sm: 8px; --up-radius-panel: 16px; --up-radius-pill: 999px;
  --up-border-hairline: 1px; --up-border-strong: 2px; --up-border-underline: 3px;
  --up-shadow: none;
  --up-grid-columns: 12; --up-grid-gutter: 32px; --up-container: 1200px; --up-measure: 34em;
  --up-duration-micro: 120ms; --up-duration-base: 200ms; --up-ease-out: cubic-bezier(.22,.61,.36,1);
  --up-ff: 'Pretendard Variable', 'Pretendard', 'Inter', 'Noto Sans KR', sans-serif;
  --up-ff-mono: 'IBM Plex Mono', ui-monospace, monospace;

  --up-surface-canvas: #FFFFFF;
  --up-surface-panel: #F6F6F6;
  --up-surface-tint: #FFF7F4;
  --up-surface-inverse: #121113;
  --up-surface-brand: #F9431C;
  --up-surface-action: #DE2F00;
  --up-text-primary: #121113;
  --up-text-secondary: #5F5F5F;
  --up-text-tertiary: #6B6B6B;
  --up-text-accent: #DE2F00;
  --up-text-brand: #F9431C;
  --up-text-on-brand: #FFFFFF;
  --up-text-inverse: #FFFFFF;
  --up-rule-hairline: #EBEBEB;
  --up-rule-default: #D9D9D9;
  --up-rule-strong: #121113;
  --up-rule-brand: #F9431C;
  --up-action-hover: #B52100;
  --up-focus-ring: #DE2F00;
  --up-success-text: #397D4B;
  --up-success-tint: #E9F8EB;
  --up-success-line: #5CA46D;
  --up-warning-text: #946600;
  --up-warning-tint: #FEF2DF;
  --up-warning-line: #C18A22;
  --up-danger-text: #C14349;
  --up-danger-tint: #FFEFEF;
  --up-danger-line: #E86F73;
  --up-info-text: #2876A5;
  --up-info-tint: #E9F6FF;
  --up-info-line: #4D9CD1;
  --up-chart-1: #F9431C;
  --up-chart-2: #7A7A7A;
  --up-chart-3: #A86556;
  --up-chart-4: #008298;
  --up-chart-5: #438353;
  --up-chart-6: #836BAC;
  --up-seq-1: #FFF0EC;
  --up-seq-2: #FFD2C8;
  --up-seq-3: #FFB19F;
  --up-seq-4: #FF866C;
  --up-seq-5: #FC4925;
  --up-seq-6: #CC2C03;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
    --up-surface-canvas: #121113;
    --up-surface-panel: #1E1D1F;
    --up-surface-tint: #2A1A15;
    --up-surface-inverse: #FFFFFF;
    --up-surface-brand: #F9431C;
    --up-surface-action: #DE2F00;
    --up-text-primary: #FFFFFF;
    --up-text-secondary: #BDBDBD;
    --up-text-tertiary: #9E9E9E;
    --up-text-accent: #F9431C;
    --up-text-brand: #F9431C;
    --up-text-on-brand: #FFFFFF;
    --up-text-inverse: #121113;
    --up-rule-hairline: #2C2B2D;
    --up-rule-default: #3A393B;
    --up-rule-strong: #FFFFFF;
    --up-rule-brand: #F9431C;
    --up-action-hover: #B52100;
    --up-focus-ring: #F9431C;
    --up-success-text: #4A995D;
    --up-success-tint: #112716;
    --up-success-line: #236E3A;
    --up-warning-text: #B57E00;
    --up-warning-tint: #2F1E00;
    --up-warning-line: #825900;
    --up-danger-text: #D0666A;
    --up-danger-tint: #391415;
    --up-danger-line: #AB3841;
    --up-info-text: #3690C7;
    --up-info-tint: #0B2435;
    --up-info-line: #046697;
    --up-chart-1: #FF866C;
    --up-chart-2: #BDBDBD;
    --up-chart-3: #E19989;
    --up-chart-4: #58BED5;
    --up-chart-5: #7FC08C;
    --up-chart-6: #B7A0E4;
    --up-seq-1: #580D00;
    --up-seq-2: #861500;
    --up-seq-3: #B52100;
    --up-seq-4: #E63100;
    --up-seq-5: #FF6647;
    --up-seq-6: #FFAC99;
    color-scheme: dark;
} }
:root[data-theme="dark"] {
  --up-surface-canvas: #121113;
  --up-surface-panel: #1E1D1F;
  --up-surface-tint: #2A1A15;
  --up-surface-inverse: #FFFFFF;
  --up-surface-brand: #F9431C;
  --up-surface-action: #DE2F00;
  --up-text-primary: #FFFFFF;
  --up-text-secondary: #BDBDBD;
  --up-text-tertiary: #9E9E9E;
  --up-text-accent: #F9431C;
  --up-text-brand: #F9431C;
  --up-text-on-brand: #FFFFFF;
  --up-text-inverse: #121113;
  --up-rule-hairline: #2C2B2D;
  --up-rule-default: #3A393B;
  --up-rule-strong: #FFFFFF;
  --up-rule-brand: #F9431C;
  --up-action-hover: #B52100;
  --up-focus-ring: #F9431C;
  --up-success-text: #4A995D;
  --up-success-tint: #112716;
  --up-success-line: #236E3A;
  --up-warning-text: #B57E00;
  --up-warning-tint: #2F1E00;
  --up-warning-line: #825900;
  --up-danger-text: #D0666A;
  --up-danger-tint: #391415;
  --up-danger-line: #AB3841;
  --up-info-text: #3690C7;
  --up-info-tint: #0B2435;
  --up-info-line: #046697;
  --up-chart-1: #FF866C;
  --up-chart-2: #BDBDBD;
  --up-chart-3: #E19989;
  --up-chart-4: #58BED5;
  --up-chart-5: #7FC08C;
  --up-chart-6: #B7A0E4;
  --up-seq-1: #580D00;
  --up-seq-2: #861500;
  --up-seq-3: #B52100;
  --up-seq-4: #E63100;
  --up-seq-5: #FF6647;
  --up-seq-6: #FFAC99;
  color-scheme: dark;
}

/* ---- 가독성 하한 강제 (§05) ---- */
html { -webkit-text-size-adjust: 100%; }
body { margin:0; background:var(--up-surface-canvas); color:var(--up-text-primary);
  font-family:var(--up-ff); font-size:var(--up-fs-body); line-height:var(--up-lh-body); font-weight:400; }
*, *::before, *::after { box-sizing:border-box; }
:where(h1,h2,h3,h4,h5,h6) { text-wrap:balance; }
:where(p, li) { max-width:var(--up-measure); }
:where(table) { font-variant-numeric:tabular-nums; border-collapse:collapse; }
:where(a,button,input,select,textarea):focus-visible { outline:2px solid var(--up-focus-ring); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:1ms !important; transition-duration:1ms !important; } }
