*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--vt-color-surface); color: var(--vt-color-text); font-family: var(--vt-font-family); font-size: 1rem; line-height: var(--vt-line-height, 1.8); overflow-x: hidden; }
body.is-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { color: inherit; font: inherit; }
img { display: block; height: auto; max-width: 100%; }
h1, h2, h3, p { margin-block-start: 0; }
h1, h2, h3 { line-height: 1.35; }
.screen-reader-text, .vt-skip-link:not(:focus) { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; word-wrap: normal !important; }
.vt-skip-link { background: #fff; color: #000; inset-block-start: 0.5rem; inset-inline-start: 0.5rem; padding: 0.75rem 1rem; position: fixed; z-index: 9999; }
.vt-container { margin-inline: auto; width: min(calc(100% - 1.5rem), var(--vt-container)); }
.vt-section { padding-block: 4.0625rem; }
.vt-section-heading { margin-block-end: 1.875rem; }
.vt-section-heading--center { margin-inline: auto; max-width: 44rem; text-align: center; }
.vt-section-heading h2 { color: var(--vt-color-heading); font-size: clamp(1.5625rem, 4vw, 2.25rem); line-height: 1.5; margin-block-end: 0.625rem; }
.vt-section-heading p:last-child { color: var(--vt-color-muted); margin-block-end: 0; }
.vt-kicker { color: var(--vt-color-link); font-size: 0.875rem; font-weight: 700; letter-spacing: 0; margin-block-end: 0.3125rem; }
.vt-card { background: var(--vt-color-surface); border: 1px solid var(--vt-color-border); border-radius: var(--vt-radius-md); }
.vt-button { align-items: center; border: 1px solid transparent; border-radius: var(--vt-radius-pill); cursor: pointer; display: inline-flex; font-size: 0.875rem; font-weight: 600; gap: 0.5rem; justify-content: center; min-height: auto; padding: 0.8125rem 1.5rem; transition: transform var(--vt-transition), background-color var(--vt-transition), border-color var(--vt-transition), box-shadow var(--vt-transition); }
.vt-button:hover { transform: translateY(-3px); }
.vt-button--primary { background: var(--vt-color-primary); color: var(--vt-color-on-primary); }
.vt-button--primary:hover { background: var(--vt-color-primary-hover);  color: var(--vt-color-on-primary-hover); }
.vt-button--outline { border-color: var(--vt-color-primary); color: #fff; }
.vt-button--outline:hover { background: var(--vt-color-primary); color: var(--vt-color-on-primary); }
.vt-button--ghost { border-color: rgba(255,255,255,.65); color: #fff; }
.vt-icon-button { align-items: center; background: rgba(255,255,255,.1); border: 0; border-radius: 0.7rem; color: #fff; cursor: pointer; display: inline-flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.vt-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.vt-content-layout { min-height: 60vh; padding-block: 3.5rem; }
.vt-page-header { margin-block-end: 2rem; max-width: 52rem; }
.vt-page-header h1 { font-size: clamp(2rem, 6vw, 3.4rem); }
.vt-entry { margin-inline: auto; max-width: 52rem; }
.vt-entry__media { border-radius: var(--vt-radius-lg); margin-block-end: 2rem; overflow: hidden; }
.vt-entry__content { font-size: 1rem; }
.vt-entry__content > * + * { margin-block-start: 1.2em; }
.vt-post-grid { display: grid; gap: 1.25rem; }
.vt-post-card { overflow: hidden; }
.vt-post-card__body { padding: 1.25rem; }
.vt-post-card__meta { color: var(--vt-color-muted); font-size: 0.8rem; }
.vt-error-page { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 65vh; text-align: center; }
.vt-comments { margin-block-start: 3rem; }
.vt-comments .comment-list { padding-inline-start: 1.25rem; }
.vt-search-form { display: flex; gap: 0.65rem; }
.vt-search-form input { background: var(--vt-color-surface); border: 1px solid var(--vt-color-border); border-radius: var(--vt-radius-pill); min-width: 0; padding-inline: 1rem; width: 100%; }

@media (min-width: 37.5625rem) {
    .vt-container { width: min(calc(100% - 2rem), var(--vt-container)); }
    .vt-section { padding-block: 5.625rem; }
    .vt-section-heading { margin-block-end: 2.8125rem; }
}

@media (min-width: 48rem) {
    .vt-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
