/* Minimal resets and text primitives. Utility classes stop here by design. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ts-bg);color:var(--ts-text-primary);font-family:var(--ts-font-body);font-size:var(--ts-size-body);line-height:var(--ts-lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--ts-text-primary);text-decoration:none;border-bottom:1px solid var(--ts-border-metal);transition:border-color var(--ts-duration-fast) var(--ts-ease-standard),color var(--ts-duration-fast) var(--ts-ease-standard)}
a:hover{color:var(--ts-metal);border-bottom-color:var(--ts-metal)}
:focus-visible{outline:1px solid var(--ts-focus-ring);outline-offset:3px}
::selection{background:var(--ts-accent);color:var(--ts-text-on-accent)}
.ts-display{font-family:var(--ts-font-display);font-weight:var(--ts-weight-regular);letter-spacing:var(--ts-track-display);text-wrap:pretty}
.ts-overline{font-family:var(--ts-font-body);font-size:var(--ts-size-overline);line-height:var(--ts-lh-overline);font-weight:var(--ts-weight-medium);letter-spacing:var(--ts-track-overline);text-transform:uppercase;color:var(--ts-metal)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms !important;transition-duration:.01ms !important}}
