* { margin: 0; padding: 0; box-sizing: border-box; } html { height: 100%; font-size: var(--font-size-base); transition: var(--theme-transition); } body { font-family: 'Montserrat', 'Open Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif; background: var(--bg-main); color: var(--text); line-height: var(--line-height-base); min-height: 100vh; transition: var(--theme-transition); will-change: background-color, color; } h1, h2, h3 { scroll-margin-top: var(--header-height); } h1 { font-size: var(--font-size-xxl); margin-bottom: var(--space-lg); color: var(--text); opacity: 0.85; font-weight: var(--font-weight-semibold); transition: var(--theme-transition); } h2 { font-size: var(--font-size-xl); margin-bottom: var(--space-lg); color: var(--text); font-weight: var(--font-weight-medium); transition: var(--theme-transition); } h3 { font-size: var(--font-size-lg); color: var(--text); margin-bottom: var(--space-md); font-weight: var(--font-weight-medium); transition: var(--theme-transition); } h1.h1-hero { font-size: var(--font-size-xxxl); margin: var(--space-xl); padding: var(--space-xl); color: var(--text); opacity: 0.85; font-weight: var(--font-weight-light); text-align: center; } p { margin-bottom: var(--space-md); font-size: var(--font-size-md); transition: var(--theme-transition); } a { color: var(--primary); text-decoration: none; transition: var(--theme-transition), opacity var(--transition-speed) var(--transition-timing); } a:hover { opacity: 0.8; } main { padding-top: var(--header-height); } .container { max-width: var(--content-width-xl); margin: 0 auto; padding: 0 var(--container-padding); } section { padding: var(--section-spacing); } /* Utility classes */ .text-center { text-align: center; } .mb-1 { margin-bottom: var(--space-xs); } .mb-2 { margin-bottom: var(--space-md); } .mb-3 { margin-bottom: var(--space-lg); } .mb-4 { margin-bottom: var(--space-xl); } .mt-1 { margin-top: var(--space-xs); } .mt-2 { margin-top: var(--space-md); } .mt-3 { margin-top: var(--space-lg); } .mt-4 { margin-top: var(--space-xl); }