:root{--bg:#F7F9F6;--surface:#EEF2EC;--surface-alt:#E4EAE2;--border-light:#D2DCD6;--border:#B8C8C0;--border-strong:#8FA89E;--text-primary:#101C17;--text-secondary:#3D5449;--text-muted:#6B8278;--text-on-dark:#ECF2EE;--text-soft-on-dark:#BED1C7;--text-muted-on-dark:#8FB09F;--accent:#1A6B4A;--accent-hover:#145438;--accent-active:#0F3F2A;--accent-subtle:#E6F3EC;--accent-border:#A8D4BC;--accent-on-dark:#4CAF84;--dark-bg:#111C17;--dark-surface:#192620;--dark-surface-alt:#213029;--dark-border:#2D4038;--success-soft:#E6F3EC;--success:#1A6B4A;--warning-soft:#FDF3E3;--warning:#B45309;--error-soft:#FDE8E8;--error:#B91C1C;--shadow-color:#101C17;--shadow-accent-color:#1A6B4A;--font-display:"Outfit",sans-serif;--font-text:"Be Vietnam Pro",sans-serif;--text-h1:clamp(3.5rem,8vw,5rem);--text-h2:clamp(2.5rem,6vw,3rem);--text-h3:clamp(1.75rem,4vw,2.25rem);--text-h4:clamp(1.375rem,1.375rem + 0.5vw,1.75rem);--text-h5:clamp(1.125rem,1.125rem + 0.25vw,1.375rem);--text-h6:clamp(1rem,1rem + 0.25vw,1.125rem);--text-body:clamp(1rem,1rem + 0.5vw,1.25rem);--text-sm:clamp(0.875rem,0.875rem + 0.1vw,1rem);--text-xs:0.75rem;--ctx-bg:var(--bg);--ctx-surface:var(--surface);--ctx-surface-alt:var(--surface-alt);--ctx-border:var(--border-light);--ctx-border-strong:var(--border);--ctx-text:var(--text-primary);--ctx-text-soft:var(--text-secondary);--ctx-text-muted:var(--text-muted);--ctx-accent:var(--accent);--ctx-accent-hover:var(--accent-hover);--ctx-accent-subtle:var(--accent-subtle);--ctx-accent-border:var(--accent-border);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--section-sm:48px;--section-md:64px;--section-lg:96px;--section-xl:128px;--container-default:1200px;--container-wide:1400px;--container-narrow:800px;--gutter:32px;--gutter-mobile:20px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--transition-fast:150ms;--transition-base:250ms;--transition-slow:400ms}