:root{--jh-primary: #5f7cfb;--jh-secondary: #9bb1ff;--jh-accent: #ff8a7a;--jh-navy: #182035;--jh-gray: #66728d;--jh-light-gray: #e6e9f2;--jh-warm-white: #fffef7;--jh-white: #ffffff;--jh-success: #35c98b;--jh-warning: #ffb84d;--jh-error: #ff6b6b;--jh-insight: #8b5cf6;--jh-soft-blue: #eef3ff;--jh-soft-green: #eafbf3;--jh-soft-amber: #fff6e0;--jh-soft-purple: #f2edff;--jh-soft-peach: #fff0e8;--jh-grad-primary: linear-gradient(135deg, #6f8cff 0%, #4f6ef7 100%);--jh-grad-soft-blue: linear-gradient(135deg, #f3f6ff 0%, #eaf0ff 100%);--jh-grad-coral: linear-gradient(135deg, #ff9a80 0%, #ff6b5f 100%);--jh-grad-success: linear-gradient(135deg, #6be7bf 0%, #1fc692 100%);--jh-radius-xs: 6px;--jh-radius-sm: 10px;--jh-radius-md: 14px;--jh-radius-lg: 18px;--jh-radius-xl: 22px;--jh-radius-xxl: 28px;--jh-radius-xxxl: 36px;--jh-radius-full: 9999px;--jh-space-1: 4px;--jh-space-2: 8px;--jh-space-3: 12px;--jh-space-4: 16px;--jh-space-5: 20px;--jh-space-6: 24px;--jh-space-8: 32px;--jh-space-10: 40px;--jh-space-12: 48px;--jh-space-16: 64px;--jh-space-20: 80px;--jh-shadow-xs: 0 2px 8px rgba(24, 32, 53, .04);--jh-shadow-sm: 0 4px 12px rgba(24, 32, 53, .06);--jh-shadow-md: 0 8px 24px rgba(24, 32, 53, .08);--jh-shadow-lg: 0 16px 40px rgba(24, 32, 53, .1);--jh-shadow-blue-glow: 0 12px 28px rgba(95, 124, 251, .28);--jh-shadow-coral-glow: 0 12px 28px rgba(255, 138, 122, .25);--jh-font-sans: "PingFang SC", "Source Han Sans SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Plus Jakarta Sans", "Inter", system-ui, -apple-system, sans-serif;--jh-font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--jh-fs-hero: 48px;--jh-fs-page: 36px;--jh-fs-section: 24px;--jh-fs-card: 18px;--jh-fs-body: 16px;--jh-fs-body-sm: 14px;--jh-fs-caption: 12px;--jh-fs-button: 15px;--jh-fs-data-number: 40px;--jh-fw-regular: 400;--jh-fw-medium: 500;--jh-fw-semibold: 600;--jh-fw-bold: 700;--jh-fw-extrabold: 800;--jh-lh-tight: 1.15;--jh-lh-snug: 1.3;--jh-lh-normal: 1.5;--jh-lh-relaxed: 1.7;--jh-dur-button: .16s;--jh-dur-card: .2s;--jh-dur-modal: .24s;--jh-dur-progress: .4s;--jh-dur-mascot: .4s;--jh-ease-standard: cubic-bezier(.2, .8, .2, 1);--jh-ease-spring: cubic-bezier(.34, 1.56, .64, 1)}.jh-hero{font:var(--jh-fw-extrabold) var(--jh-fs-hero)/var(--jh-lh-tight) var(--jh-font-sans);letter-spacing:-.02em;color:var(--jh-navy)}.jh-page{font:var(--jh-fw-bold) var(--jh-fs-page)/var(--jh-lh-tight) var(--jh-font-sans);letter-spacing:-.01em;color:var(--jh-navy)}.jh-section{font:var(--jh-fw-bold) var(--jh-fs-section)/var(--jh-lh-snug) var(--jh-font-sans);color:var(--jh-navy)}.jh-card{font:var(--jh-fw-bold) var(--jh-fs-card)/var(--jh-lh-snug) var(--jh-font-sans);color:var(--jh-navy)}.jh-body{font:var(--jh-fw-regular) var(--jh-fs-body)/var(--jh-lh-normal) var(--jh-font-sans);color:var(--jh-gray)}.jh-body-sm{font:var(--jh-fw-regular) var(--jh-fs-body-sm)/var(--jh-lh-normal) var(--jh-font-sans);color:var(--jh-gray)}.jh-caption{font:var(--jh-fw-medium) var(--jh-fs-caption)/var(--jh-lh-normal) var(--jh-font-sans);color:var(--jh-gray)}.jh-data{font:var(--jh-fw-extrabold) var(--jh-fs-data-number)/1 var(--jh-font-mono);letter-spacing:-.02em;color:var(--jh-primary)}
