.pi-scope,
[data-pi-scope] {
    background: var(--pi-bg);
    color: var(--pi-text);
    font-family: var(--pi-font-family);
    font-size: var(--pi-font-md);
    line-height: var(--pi-line-normal);
    text-rendering: optimizeLegibility;
}

.pi-scope *,
.pi-scope *::before,
.pi-scope *::after,
[data-pi-scope] *,
[data-pi-scope] *::before,
[data-pi-scope] *::after {
    box-sizing: border-box;
}

.pi-scope a,
[data-pi-scope] a {
    color: var(--pi-primary);
    text-decoration: none;
    transition: color var(--pi-transition-fast);
}

.pi-scope a:hover,
[data-pi-scope] a:hover {
    color: var(--pi-primary-hover);
}

.pi-scope :focus-visible,
[data-pi-scope] :focus-visible {
    box-shadow: var(--pi-focus-ring);
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.pi-scope ::selection,
[data-pi-scope] ::selection {
    background: var(--pi-primary-soft);
    color: var(--pi-text);
}

.pi-scope input,
.pi-scope textarea,
.pi-scope select,
.pi-scope button,
[data-pi-scope] input,
[data-pi-scope] textarea,
[data-pi-scope] select,
[data-pi-scope] button {
    font: inherit;
}

.pi-title {
    color: var(--pi-text);
    font-size: var(--pi-font-page-title);
    font-weight: 750;
    letter-spacing: 0;
    line-height: var(--pi-line-tight);
    margin: 0;
}

.pi-subtitle {
    color: var(--pi-text-secondary);
    font-size: var(--pi-font-sm);
    margin: var(--pi-space-2) 0 0;
}

.pi-link-subtle {
    color: var(--pi-text-secondary);
}

.pi-link-subtle:hover {
    color: var(--pi-primary);
}

.pi-link-danger {
    color: var(--pi-danger);
}

.pi-text-caption {
    color: var(--pi-text-muted);
    font-size: var(--pi-font-caption);
    line-height: var(--pi-line-normal);
}

.pi-text-metadata {
    color: var(--pi-text-muted);
    font-size: var(--pi-font-metadata);
    line-height: var(--pi-line-normal);
}

.pi-body {
    color: var(--pi-text);
    font-size: var(--pi-font-body);
    line-height: var(--pi-line-normal);
}

.pi-section-title {
    color: var(--pi-text);
    font-size: var(--pi-font-section-title);
    font-weight: 750;
    letter-spacing: 0;
    line-height: var(--pi-line-tight);
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    .pi-scope *,
    .pi-scope *::before,
    .pi-scope *::after,
    [data-pi-scope] *,
    [data-pi-scope] *::before,
    [data-pi-scope] *::after {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 1ms !important;
    }
}
