*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{margin:0;font-family:var(--font-body);font-size:var(--type-body);line-height:var(--leading-normal);color:var(--text-body);background:var(--surface-page)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--text-strong);letter-spacing:var(--tracking-heading);line-height:var(--leading-snug);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover)}
::selection{background:var(--ts-blue);color:#fff}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@keyframes ts-fade-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes ts-kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
@keyframes ts-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ts-toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}