:root{--color-bg:#F6F1E8;--color-bg-alt:#EFE7DA;--color-card:#FFFDF9;--color-border:#D8CCB8;--color-text:#1F2A24;--color-text-secondary:#5F6B63;--color-text-muted:#8A9488;--color-primary:#556B2F;--color-primary-hover:#6B8A3A;--color-primary-light:rgba(85,107,47,0.08);--color-primary-dark:#2F3A2B;--color-bg-subtle:#EFE7DA;--color-bg-card:#FFFDF9;--color-bg-elevated:#FFFDF9;--color-surface:#FFFDF9;--color-surface-hover:#F6F1E8;--color-success:#556B2F;--color-success-bg:rgba(85,107,47,0.08);--color-warning:#B88A44;--color-warning-bg:rgba(184,138,68,0.08);--color-danger:#A3553A;--color-danger-bg:rgba(163,85,58,0.08);--color-danger-hover:#8B4533;--color-info:#556B2F;--color-info-bg:rgba(85,107,47,0.08);--color-border-light:#E3DAC9;--shadow-sm:0 1px 3px rgba(31,42,36,0.03),0 1px 2px rgba(31,42,36,0.02);--shadow-md:0 2px 8px rgba(31,42,36,0.05);--shadow-lg:0 4px 16px rgba(31,42,36,0.07);--shadow-xl:0 8px 32px rgba(31,42,36,0.09);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-heading:"Playfair Display","Georgia","Times New Roman",serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--container-max:1200px;--container-sm:640px;--container-md:768px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--color-text)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}@media (min-width:768px){h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}}p{color:var(--color-text-secondary);line-height:1.7}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-lg)}@media (min-width:768px){.container{padding:0 var(--space-xl)}}.section{padding:var(--space-3xl) 0}@media (min-width:768px){.section{padding:5rem 0}}.grid{display:grid;grid-gap:var(--space-lg);gap:var(--space-lg)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}@media (min-width:640px){.grid-2,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr)}}.text-center{text-align:center}.text-left{text-align:left}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background:var(--color-primary);color:#FFFDF9}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes marquee-reverse{0%{transform:translateX(-50%)}to{transform:translateX(0)}}