*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--surface-page); color: var(--text-primary); font: var(--weight-regular) var(--text-body) / var(--leading-body) var(--font-core); letter-spacing: var(--tracking-body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: rgba(var(--accent-rgb) / 0.22); }
a { color: var(--text-primary); text-decoration: none; text-underline-offset: 4px; transition: var(--transition-control); }
a:hover { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; }
:focus-visible { outline: none; box-shadow: var(--ring-focus); border-radius: var(--radius-2); }
img { max-width: 100%; display: block; }
h1, h2, h3, h4, p { margin: 0; text-wrap: pretty; }
hr { border: 0; border-top: var(--border-hairline) solid var(--line-hairline); margin: 0; }

.acom-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.acom-container--narrow { max-width: var(--container-narrow); }
.acom-container--wide { max-width: var(--container-wide); }
.acom-section { padding-block: var(--section-pad-y); }
.acom-rule { height: 1px; background: var(--line-hairline); }
