@import "tailwindcss"; @theme inline { --font-sans: var(--font-noto-sans-sc), var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; --font-mono: var(--font-geist-mono); --font-chinese: var(--font-noto-sans-sc), sans-serif; --font-calligraphy: var(--font-ma-shan-zheng), 'ZCOOL XiaoWei', 'STKaiti', 'KaiTi', serif; } :root { --color-primary: #1C1C1C; --color-primary-hover: #0A0A0A; --color-primary-light: #3D3D3D; --color-primary-lighter: #F5F5F5; --color-primary-rgb: 28, 28, 28; --color-brand-primary: #C41E3A; --color-brand-primary-hover: #A01830; --color-brand-primary-light: #E04A68; --color-brand-primary-bg: #FEF2F4; --color-bg-primary: #FFFFFF; --color-bg-secondary: #FFFBF5; --color-bg-tertiary: #F5F5F5; --color-bg-section: #FAFAFA; --color-bg-hover: #EFEFEF; --color-text-primary: #1C1C1C; --color-text-secondary: #3D3D3D; --color-text-tertiary: #404040; --color-text-muted: #595959; --color-text-subtle: #A3A3A3; --color-text-placeholder: #5C5C5C; --color-text-hint: #8C8C8C; --color-border-primary: #E5E5E5; --color-border-secondary: #D4D4D4; --color-border-accent: #1C1C1C; --color-border-light: #F0F0F0; --color-border-dark: #333333; --color-link: #1C1C1C; --color-link-hover: #C41E3A; --color-success: #16A34A; --color-success-hover: #15803D; --color-success-bg: #F0FDF4; --color-warning: #D97706; --color-warning-hover: #B45309; --color-warning-bg: #FFFBEB; --color-info: #5C5C5C; --color-info-bg: #F5F5F5; --color-error: #C41E3A; --color-error-bg: #FEF2F4; --color-accent-blue: #2563EB; --color-accent-purple: #7C3AED; --color-accent-cyan: #0891B2; --color-brand-primary-rgb: 196, 30, 58; --color-warning-rgb: 217, 119, 6; --color-success-rgb: 22, 163, 74; --color-accent-blue-rgb: 37, 99, 235; --color-accent-purple-rgb: 124, 58, 237; --color-accent-cyan-rgb: 8, 145, 178; --color-footer-bg: #1C1C1C; --color-cta-bg: #FAFAFA; --color-hero-dark-end: #1C1C1C; --color-footer-text: #A0A0A0; --color-footer-text-muted: #666666; --color-footer-text-dim: #999999; --color-footer-text-link: #E0E0E0; --color-footer-border: #333333; --color-challenge-isolation: #FEF2F4; --color-challenge-isolation-hover: #FDE8EC; --color-challenge-growth: #FFFBEB; --color-challenge-growth-hover: #FEF3C7; --color-challenge-compliance: #F0FDF4; --color-challenge-compliance-hover: #DCFCE7; --color-flip-card-bg: #FAFAFA; --color-flip-card-border: #E5E5E5; --color-flip-card-divider: #B0B0B0; --color-flip-card-divider-subtle: #D4D4D4; --color-toast-success-bg: #F0FDF4; --color-toast-success-border: #BBF7D0; --color-toast-error-bg: #FEF2F4; --color-toast-error-border: #FECACA; --color-toast-info-bg: #EFF6FF; --color-toast-info-border: #BFDBFE; --color-toast-close: #A3A3A3; --color-toast-close-hover: #595959; --color-skeleton-bg: #E5E5E5; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.05); --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; --font-size-2xl: 1.5rem; --font-size-3xl: 1.875rem; --font-size-4xl: 2.25rem; --font-size-5xl: 3rem; --font-size-6xl: 3.75rem; --line-height-tight: 1.1; --line-height-snug: 1.25; --line-height-normal: 1.5; --line-height-relaxed: 1.625; --letter-spacing-tight: -0.025em; --letter-spacing-normal: 0; --letter-spacing-wide: 0.025em; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; --spacing-3xl: 4rem; --spacing-4xl: 6rem; --spacing-5xl: 8rem; --border-width-thin: 0.5px; --border-width-normal: 1px; --transition-fast: 150ms; --transition-normal: 200ms; --transition-slow: 300ms; --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); } [data-theme="dark"] { --color-primary: #E5E5E5; --color-primary-hover: #F5F5F5; --color-primary-light: #A3A3A3; --color-primary-lighter: #262626; --color-primary-rgb: 229, 229, 229; --color-brand-primary: #E04A68; --color-brand-primary-hover: #F06880; --color-brand-primary-light: #C41E3A; --color-brand-primary-bg: rgba(196, 30, 58, 0.15); --color-bg-primary: #0A0A0A; --color-bg-secondary: #0F0F0F; --color-bg-tertiary: #1A1A1A; --color-bg-section: #141414; --color-bg-hover: #262626; --color-text-primary: #E5E5E5; --color-text-secondary: #B0B0B0; --color-text-tertiary: #A0A0A0; --color-text-muted: #8C8C8C; --color-text-subtle: #666666; --color-text-placeholder: #737373; --color-text-hint: #5C5C5C; --color-border-primary: #2A2A2A; --color-border-secondary: #333333; --color-border-accent: #E5E5E5; --color-border-light: #1F1F1F; --color-border-dark: #CCCCCC; --color-link: #E5E5E5; --color-link-hover: #E04A68; --color-success: #22C55E; --color-success-hover: #16A34A; --color-success-bg: rgba(22, 163, 74, 0.15); --color-warning: #F59E0B; --color-warning-hover: #D97706; --color-warning-bg: rgba(217, 119, 6, 0.15); --color-info: #8C8C8C; --color-info-bg: #1A1A1A; --color-error: #E04A68; --color-error-bg: rgba(196, 30, 58, 0.15); --color-accent-blue: #3B82F6; --color-accent-purple: #8B5CF6; --color-accent-cyan: #06B6D4; --color-brand-primary-rgb: 224, 74, 104; --color-warning-rgb: 245, 158, 11; --color-success-rgb: 34, 197, 94; --color-accent-blue-rgb: 59, 130, 246; --color-accent-purple-rgb: 139, 92, 246; --color-accent-cyan-rgb: 6, 182, 212; --color-footer-bg: #000000; --color-cta-bg: #141414; --color-hero-dark-end: #1A0A10; --color-footer-text: #8C8C8C; --color-footer-text-muted: #525252; --color-footer-text-dim: #737373; --color-footer-text-link: #B0B0B0; --color-footer-border: #262626; --color-challenge-isolation: rgba(196, 30, 58, 0.12); --color-challenge-isolation-hover: rgba(196, 30, 58, 0.2); --color-challenge-growth: rgba(217, 119, 6, 0.12); --color-challenge-growth-hover: rgba(217, 119, 6, 0.2); --color-challenge-compliance: rgba(22, 163, 74, 0.12); --color-challenge-compliance-hover: rgba(22, 163, 74, 0.2); --color-flip-card-bg: #1A1A1A; --color-flip-card-border: #2A2A2A; --color-flip-card-divider: #525252; --color-flip-card-divider-subtle: #333333; --color-toast-success-bg: rgba(22, 163, 74, 0.15); --color-toast-success-border: rgba(34, 197, 94, 0.3); --color-toast-error-bg: rgba(196, 30, 58, 0.15); --color-toast-error-border: rgba(224, 74, 104, 0.3); --color-toast-info-bg: rgba(59, 130, 246, 0.15); --color-toast-info-border: rgba(59, 130, 246, 0.3); --color-toast-close: #666666; --color-toast-close-hover: #A3A3A3; --color-skeleton-bg: #262626; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.3); --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.3); } @layer base { * { @apply antialiased; border-color: var(--color-border-primary); } html { scroll-behavior: smooth; font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: hidden; } @media (min-width: 640px) { html { font-size: 17px; } } @media (min-width: 1024px) { html { font-size: 18px; } } body { background-color: var(--color-bg-primary); color: var(--color-text-primary); font-family: var(--font-sans); line-height: var(--line-height-normal); letter-spacing: var(--letter-spacing-normal); position: relative; overflow-x: hidden; width: 100%; } body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse at 15% 20%, rgba(var(--color-primary-rgb), 0.02) 0%, transparent 50%), radial-gradient(ellipse at 85% 80%, rgba(var(--color-brand-primary-rgb), 0.02) 0%, transparent 50%); pointer-events: none; z-index: -1; } h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: var(--line-height-tight); letter-spacing: var(--letter-spacing-tight); color: var(--color-text-primary); } h1 { font-size: var(--font-size-5xl); } h2 { font-size: var(--font-size-4xl); } h3 { font-size: var(--font-size-2xl); } h4 { font-size: var(--font-size-xl); } p { color: var(--color-text-secondary); line-height: var(--line-height-relaxed); } a { color: var(--color-link); text-decoration: none; transition: color var(--transition-fast) var(--ease-out); } a:hover { color: var(--color-link-hover); } button { font-family: inherit; cursor: pointer; } input, textarea { font-family: inherit; outline: none; } input:focus, textarea:focus { outline: none; } .font-calligraphy { font-family: var(--font-ma-shan-zheng), 'Ma Shan Zheng', 'ZCOOL XiaoWei', 'STKaiti', 'KaiTi', serif !important; font-weight: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } .font-brand { font-family: var(--font-aoyagi-reisho), 'Aoyagi Reisho', 'Ma Shan Zheng', 'ZCOOL XiaoWei', 'STKaiti', 'KaiTi', serif !important; font-weight: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } ::selection { background-color: var(--color-text-primary); color: var(--color-bg-primary); } } @layer utilities { .container-wide { width: 100%; max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: var(--spacing-lg); padding-right: var(--spacing-lg); } @media (min-width: 768px) { .container-wide { padding-left: var(--spacing-2xl); padding-right: var(--spacing-2xl); } } @media (min-width: 1024px) { .container-wide { padding-left: 4rem; padding-right: 4rem; } } .container-full { width: 100%; padding-left: var(--spacing-lg); padding-right: var(--spacing-lg); } @media (min-width: 768px) { .container-full { padding-left: var(--spacing-2xl); padding-right: var(--spacing-2xl); } } @media (min-width: 1024px) { .container-full { padding-left: 4rem; padding-right: 4rem; } } .section-padding { padding-top: var(--spacing-5xl); padding-bottom: var(--spacing-5xl); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } @keyframes stampIn { 0% { opacity: 0; transform: scale(1.5) rotate(-15deg); } 50% { opacity: 0.8; transform: scale(0.95) rotate(0deg); } 70% { transform: scale(1.02) rotate(0deg); } 100% { opacity: 1; transform: scale(1) rotate(0deg); } } .animate-fade-in-up { animation: fadeInUp 0.6s var(--ease-out) forwards; } .animate-stamp-in { animation: stampIn 0.6s var(--ease-out) forwards; } .stagger-1 { animation-delay: 0.1s; } .stagger-2 { animation-delay: 0.2s; } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--color-border-accent); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-text-tertiary); } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } html { scroll-behavior: auto; } } @media (max-width: 768px) { :root { --font-size-5xl: 2.25rem; --font-size-4xl: 1.875rem; --font-size-3xl: 1.5rem; --font-size-2xl: 1.25rem; } .section-padding { padding-top: var(--spacing-3xl); padding-bottom: var(--spacing-3xl); } } .safe-area-inset-bottom { padding-bottom: env(safe-area-inset-bottom, 0px); } body { padding-bottom: 0; text-wrap: pretty; } @media (max-width: 767px) { body { padding-bottom: 64px; } .container-wide, .container-full { padding-left: 1rem; padding-right: 1rem; max-width: 100%; overflow-x: hidden; } h1 { font-size: 2rem; } h2 { font-size: 1.75rem; } h3 { font-size: 1.375rem; } a:not(nav[aria-label="breadcrumb"] a), button { min-height: 44px; min-width: 44px; } nav[aria-label="breadcrumb"] a { min-height: 0; min-width: 0; } p, li, span { overflow-wrap: break-word; word-wrap: break-word; } } @property --border-angle { syntax: ''; initial-value: 0deg; inherits: false; } @keyframes rotateBorder { from { --border-angle: 0deg; } to { --border-angle: 360deg; } } .ink-glow-border { animation: rotateBorder 4s linear infinite; } .ink-glow-border::before { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: conic-gradient(from var(--border-angle), var(--glow-start), var(--glow-end), var(--glow-start)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.5s ease; } .ink-glow-border:hover::before { opacity: 1; } .ink-glow-border::after { content: ''; position: absolute; inset: -4px; border-radius: inherit; background: conic-gradient(from var(--border-angle), var(--glow-start), var(--glow-end), var(--glow-start)); filter: blur(12px); opacity: 0; transition: opacity 0.5s ease; z-index: -1; } .ink-glow-border:hover::after { opacity: 0.3; } @media (min-width: 768px) and (max-width: 1023px) { .container-wide, .container-full { padding-left: 2rem; padding-right: 2rem; } h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.5rem; } .section-padding { padding-top: 4rem; padding-bottom: 4rem; } } .page-transition-loader { width: 120px; height: 3px; background: var(--color-bg-section); border-radius: 2px; overflow: hidden; } .page-transition-loader__bar { width: 40%; height: 100%; background: var(--color-brand-primary); border-radius: 2px; animation: page-loader-slide 1.2s ease-in-out infinite; } @keyframes page-loader-slide { 0% { transform: translateX(-100%); } 50% { transform: translateX(200%); } 100% { transform: translateX(-100%); } } @media (prefers-reduced-motion: reduce) { .page-transition-loader__bar { animation: none; width: 100%; } }