:root{color-scheme:light}:root[data-theme="dark"]{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark}}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-core);font-size:var(--fs-body-m);line-height:var(--lh-normal);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,figure{margin:0}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover);text-decoration:underline;text-underline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:none;box-shadow:var(--ring-focus)}
code,kbd,.mono{font-family:var(--font-mono)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@keyframes vp-spin{to{transform:rotate(360deg)}}
@keyframes vp-fade{from{opacity:0}to{opacity:1}}
@keyframes vp-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes vp-pulse{0%,100%{opacity:1}50%{opacity:.35}}
/* theme sweep: an invisible line crosses the screen, the new theme trails behind it */
@keyframes vp-sweep-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes vp-sweep-out{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}
.vp-sweep{position:fixed;inset:0;z-index:9999;pointer-events:none;will-change:clip-path}
.vp-sweep::after{content:"";position:absolute;top:0;bottom:0;right:-1px;width:1px;background:var(--border-strong);opacity:.5}
