@import "./tokens.css"; *, *::before, *::after { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: var(--font-size-base); line-height: 1.65; transition: background-color 0.3s var(--ease-out), color 0.3s var(--ease-out); } ::selection { background: var(--accent-muted); color: var(--text); } a { color: inherit; } img, svg { max-width: 100%; display: block; } h1, h2, h3 { font-family: var(--font-display); font-weight: 600; font-style: italic; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 var(--space-4); } h1 { font-size: var(--font-size-3xl); display: inline-block; position: relative; } h1::after { content: ""; position: absolute; left: 0.05em; right: 0.4em; bottom: 0.08em; height: 0.09em; background: var(--accent); opacity: 0.55; z-index: -1; border-radius: 1px; } h2 { font-size: var(--font-size-2xl); } h3 { font-size: var(--font-size-xl); } p { margin: 0 0 var(--space-5); } code, pre { font-family: var(--font-mono); font-size: 0.9em; } pre { padding: var(--space-4); overflow-x: auto; background: var(--bg-elevated); border-radius: var(--radius-md); border: 1px solid var(--border); } /* highlight.js syntax highlighting (toml-content-loader.ts renders code fences through hljs's core build). Colors are drawn from the existing design tokens, so they already switch with the site's light/dark theme without any extra [data-theme] rules here — see tokens.css. */ .hljs-comment, .hljs-quote { color: var(--text-muted); font-style: italic; } .hljs-keyword, .hljs-selector-tag, .hljs-built_in, .hljs-type, .hljs-literal, .hljs-link { color: var(--accent); } .hljs-string, .hljs-attr, .hljs-symbol, .hljs-addition { color: #4a9c6d; } .hljs-number, .hljs-meta, .hljs-doctag { color: #d1a53d; } .hljs-title, .hljs-title.function_, .hljs-title.class_, .hljs-name { color: var(--text); font-weight: 600; } .hljs-deletion { color: #d1502f; } .hljs-emphasis { font-style: italic; } .hljs-strong { font-weight: 700; } .container { max-width: 42rem; margin-inline: auto; padding-inline: var(--space-5); } .container--wide { max-width: 76rem; } .toc { font-family: var(--font-mono); font-size: var(--font-size-sm); margin-bottom: var(--space-5); } .toc p.meta { margin-bottom: var(--space-2); } .toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); } .toc a { text-decoration: none; color: var(--text-muted); } .toc a:hover { color: var(--accent); } .toc-sidebar { padding-top: var(--space-1); border-right: 1px solid var(--border); padding-right: var(--space-4); } .eyebrow { font-family: var(--font-mono); font-size: var(--font-size-sm); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); } .meta { font-family: var(--font-mono); font-size: var(--font-size-sm); color: var(--text-muted); } .tag { display: inline-block; font-family: var(--font-mono); font-size: var(--font-size-sm); color: var(--text-muted); margin-right: var(--space-3); text-decoration: none; } .tag:hover { color: var(--accent); } .card { padding-block: var(--space-5); border-bottom: 1px solid var(--border); } .card h3 { margin-bottom: var(--space-1); } .card h3 a { text-decoration: none; } .card h3 a:hover { color: var(--accent); } .button { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-mono); font-size: var(--font-size-sm); letter-spacing: 0.04em; text-decoration: none; color: var(--text); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: var(--space-2) var(--space-4); transition: border-color 0.2s var(--ease-out), color 0.2s var(--ease-out); } .button:hover { border-color: var(--accent); color: var(--accent); } .callout { margin: 0 0 var(--space-5); padding: var(--space-4) var(--space-5); border: 1px solid var(--border); border-left: 3px solid var(--callout-color, var(--accent)); border-radius: var(--radius-md); background: var(--bg-elevated); } .callout-header { display: flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); color: var(--callout-color, var(--accent)); } .callout-icon { width: 1.1em; height: 1.1em; flex-shrink: 0; } .callout-title { font-family: var(--font-mono); font-size: var(--font-size-sm); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; } .callout-content { color: var(--text); } .callout-content > :last-child { margin-bottom: 0; } .callout-note { --callout-color: var(--accent); } .callout-tip { --callout-color: #4a9c6d; } .callout-warning { --callout-color: #d1a53d; } .callout-danger { --callout-color: #d1502f; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; } }