:root{--text-7xl:72px;--text-6xl:58px;--text-5xl:46px;--text-4xl:37px;--text-3xl:30px;--text-2xl:24px;--text-xl:20px;--text-lg:18px;--text-base:16px;--text-sm:14px;--text-xs:12px;--text-7xl-mobile:60px;--text-6xl-mobile:48px;--text-5xl-mobile:38px;--text-4xl-mobile:30px;--text-3xl-mobile:26px;--text-2xl-mobile:22px;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--line-height-tight:1.1;--line-height-snug:1.2;--line-height-normal:1.3;--line-height-relaxed:1.5;--line-height-loose:1.6;--tracking-tighter:-0.05em;--tracking-tight:-0.025em;--tracking-normal:0;--tracking-wide:0.025em;--tracking-wider:0.05em;--tracking-widest:0.1em;--accent-primary:#28E998;--accent-light:#45FFB5;--accent-dark:#1DB872;--accent-glow:rgba(40,233,152,0.1);--accent-glow-medium:rgba(40,233,152,0.2);--bg-primary:#1f1f1f;--bg-elevated:#2a2a2a;--bg-accent-section:#0f0f0f;--bg-code:#1a1a1a;--text-primary:#ffffff;--text-secondary:#e5e5e5;--text-tertiary:#a0a0a0;--text-muted:#737373;--text-disabled:#525252;--border-default:#404040;--border-hover:#525252;--border-active:var(--accent-primary);--border-subtle:#2a2a2a;--success:#28E998;--success-bg:rgba(40,233,152,0.1);--warning:#FFC107;--warning-bg:rgba(255,193,7,0.1);--error:#FF6B6B;--error-bg:rgba(255,107,107,0.1);--info:#3B82F6;--info-bg:rgba(59,130,246,0.1);--shadow-sm:0 1px 3px rgba(0,0,0,0.5);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 8px 24px rgba(0,0,0,0.5);--shadow-xl:0 16px 48px rgba(0,0,0,0.6);--glow-accent:0 0 20px var(--accent-glow-medium);--glow-strong:0 0 30px var(--accent-primary);--duration-instant:100ms;--duration-fast:150ms;--duration-quick:200ms;--duration-normal:300ms;--duration-moderate:400ms;--duration-slow:500ms;--duration-deliberate:600ms;--duration-complex:1000ms;--duration-extended:1200ms;--ease-out:cubic-bezier(0.33,1,0.68,1);--ease-out-back:cubic-bezier(0.34,1.56,0.64,1);--ease-in:cubic-bezier(0.32,0,0.67,0);--ease-in-back:cubic-bezier(0.36,0,0.66,-0.56);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--ease-smooth:cubic-bezier(0.4,0,0.2,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--ease-elastic:cubic-bezier(0.68,-0.3,0.265,1.3);--stagger-list:50ms;--stagger-card:100ms;--stagger-section:200ms}@media (max-width:767px){:root{--text-7xl:var(--text-7xl-mobile);--text-6xl:var(--text-6xl-mobile);--text-5xl:var(--text-5xl-mobile);--text-4xl:var(--text-4xl-mobile);--text-3xl:var(--text-3xl-mobile);--text-2xl:var(--text-2xl-mobile)}}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0.01ms;--duration-fast:0.01ms;--duration-quick:0.01ms;--duration-normal:0.01ms;--duration-moderate:0.01ms;--duration-slow:0.01ms;--duration-deliberate:0.01ms;--duration-complex:0.01ms;--duration-extended:0.01ms}}.heading-1,h1{font-size:var(--text-6xl);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tighter);margin-bottom:1.5rem}.heading-1,.heading-2,h1,h2{font-weight:var(--font-normal);color:var(--text-primary)}.heading-2,h2{font-size:var(--text-5xl);line-height:var(--line-height-snug);letter-spacing:var(--tracking-tight);margin-bottom:1.25rem}.heading-3,h3{font-size:var(--text-4xl);font-weight:var(--font-normal);letter-spacing:var(--tracking-normal)}.heading-3,.heading-4,h3,h4{line-height:var(--line-height-normal);color:var(--text-primary);margin-bottom:1rem}.heading-4,h4{font-size:var(--text-3xl);font-weight:var(--font-semibold)}.heading-5,h5{font-size:var(--text-2xl);line-height:var(--line-height-normal)}.heading-5,.heading-6,h5,h6{font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:.75rem}.heading-6,h6{font-size:var(--text-xl)}.body-text,.heading-6,h6,p{line-height:var(--line-height-relaxed)}.body-text,p{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:1em}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-muted{color:var(--text-muted)}.article-content,.prose{max-width:65ch;margin-left:auto;margin-right:auto}.lead{font-size:var(--text-xl);line-height:var(--line-height-relaxed);color:var(--text-secondary)}.text-small{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--text-tertiary)}code,kbd,samp{font-family:Fira Code,Consolas,Monaco,monospace;font-size:.9em;background:var(--bg-elevated);padding:.125em .375em;border-radius:3px;color:var(--accent-light)}pre code{display:block;padding:1rem;overflow-x:auto;line-height:var(--line-height-relaxed);font-size:var(--text-sm)}.container{padding:clamp(40px,8vh,80px) clamp(24px,4vw,48px)}.px-responsive{padding-left:24px;padding-right:24px}@media (min-width:640px){.px-responsive{padding-left:32px;padding-right:32px}}@media (min-width:1024px){.px-responsive{padding-left:48px;padding-right:48px}}.py-responsive{padding-top:40px;padding-bottom:40px}@media (min-width:640px){.py-responsive{padding-top:60px;padding-bottom:60px}}@media (min-width:1024px){.py-responsive{padding-top:80px;padding-bottom:80px}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}input.error,select.error,textarea.error{border-color:rgb(239,68,68)!important;animation:shake .3s cubic-bezier(.36,.07,.19,.97)}.error-message{color:rgb(239,68,68);font-size:.75rem;font-weight:500;margin-top:.25rem;line-height:1.25}.success-message{padding:1rem;background:rgba(40,233,152,.1);border:1px solid rgb(40,233,152);border-radius:6px;color:rgb(40,233,152);font-weight:500}input:focus,select:focus,textarea:focus{outline:none;border-color:rgb(40,233,152);box-shadow:0 0 0 3px rgba(40,233,152,.1);transition:all .2s cubic-bezier(.4,0,.2,1)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(0,0,0,.1);border-left-color:currentcolor;border-radius:50%;animation:spin 1s linear infinite}@media (prefers-reduced-motion:reduce){input.error,select.error,textarea.error{animation:none}.spinner{animation-duration:2s}}.form-field{transition:all .2s ease-out}.form-field.is-validating{opacity:.7}.form-field.is-valid{border-color:rgb(40,233,152)}.form-field.is-invalid{border-color:rgb(239,68,68)}