/* CSS Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* CSS Variables - Light Mode (default) */ :root { --color-base: #faf4ed; --color-surface: #fffaf3; --color-overlay: #f2e9e1; --color-text: #575279; --color-muted: #9893a5; --color-subtle: #797593; --color-emphasis: #575279; --color-primary: #907aa9; --color-secondary: #56949f; --color-tertiary: #286983; --color-error: #b4637a; --color-warning: #ea9d34; --color-success: #286983; --color-border: #dfdad9; --color-link: #d7827e; --color-highlight: #cecacd; --font-body: 'IBM Plex', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-heading: 'IBM Plex Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-mono: 'IBM Plex Mono', 'Berkeley Mono', 'Cascadia Code', 'Roboto Mono', Consolas, monospace; --spacing-base: 16px; --spacing-line-height: 1.6; --spacing-scale: 1.25; } /* CSS Variables - Dark Mode */ @media (prefers-color-scheme: dark) { :root { --color-base: #191724; --color-surface: #1f1d2e; --color-overlay: #26233a; --color-text: #e0def4; --color-muted: #6e6a86; --color-subtle: #908caa; --color-emphasis: #e0def4; --color-primary: #c4a7e7; --color-secondary: #9ccfd8; --color-tertiary: #ebbcba; --color-error: #eb6f92; --color-warning: #f6c177; --color-success: #31748f; --color-border: #403d52; --color-link: #ebbcba; --color-highlight: #524f67; } } /* Base Styles */ html { font-size: var(--spacing-base); line-height: var(--spacing-line-height); } body { font-family: var(--font-body); color: var(--color-text); background-color: var(--color-base); max-width: 90ch; margin: 0 auto; padding: 2rem 1rem; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); margin-top: calc(1rem * var(--spacing-scale)); margin-bottom: 0.5rem; line-height: 1.2; } h1 { font-size: 2rem; color: var(--color-secondary); } h2 { font-size: 1.5rem; color: var(--color-primary); } h3 { font-size: 1.25rem; color: var(--color-secondary); } h4 { font-size: 1.2rem; color: var(--color-tertiary); } h5 { font-size: 1.125rem; color: var(--color-secondary); } h6 { font-size: 1rem; } p { margin-bottom: 1rem; } a { color: var(--color-link); text-decoration: none; } a:hover { color: var(--color-emphasis); text-decoration: underline; } /* Selection */ ::selection { background: var(--color-highlight); color: var(--color-text); } /* Lists */ ul, ol { margin-left: 2rem; margin-bottom: 1rem; } li { margin-bottom: 0.25rem; } /* Code */ code { font-family: var(--font-mono); background: var(--color-surface); padding: 0.125rem 0.25rem; border-radius: 4px; font-size: 0.9em; } pre { overflow-x: auto; margin-bottom: 1rem; border-radius: 5px; border: 1px solid var(--color-border); box-sizing: border-box; } /* Code blocks inside pre are handled by syntax theme */ pre code { display: block; width: fit-content; min-width: 100%; padding: 1rem; background: var(--color-surface); } /* Math */ .math { font-family: var(--font-mono); } .math-display { display: block; margin: 1rem 0; text-align: center; } /* Blockquotes */ blockquote { border-left: 2px solid var(--color-secondary); background: var(--color-surface); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.04rem; margin: 1rem 0; font-size: 0.95em; border-bottom-right-radius: 5px; border-top-right-radius: 5px; } } /* Tables */ table { border-collapse: collapse; width: 100%; margin-bottom: 1rem; } th, td { border: 1px solid var(--color-border); padding: 0.5rem; text-align: left; } th { background: var(--color-surface); font-weight: 600; } tr:hover { background: var(--color-surface); } /* Footnotes */ .footnote-reference { font-size: 0.8em; color: var(--color-subtle); } .footnote-definition { margin-top: 2rem; padding-top: 0.5rem; border-top: 1px solid var(--color-border); font-size: 0.9em; } .footnote-definition-label { font-weight: 600; margin-right: 0.5rem; color: var(--color-primary); } /* Images */ img { max-width: 100%; height: auto; display: block; margin: 1rem 0; border-radius: 4px; } /* Horizontal Rule */ hr { border: none; border-top: 2px solid var(--color-border); margin: 2rem 0; }