/* base.css — Reset, fluid typography (clamp), focus-visible, reduced-motion, media | Depends on tokens.css */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;color-scheme:light;hanging-punctuation:first last}
body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-wrap:break-word}
img,picture,video,svg{display:block;max-width:100%}
img,video{height:auto}
svg{flex-shrink:0}
h1,h2,h3,h4{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}
h1{font-size:var(--text-h1);line-height:1.1}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3);line-height:var(--leading-snug)}
h4{font-size:var(--text-h4);line-height:var(--leading-snug);letter-spacing:var(--tracking-normal)}
p,li,blockquote{max-width:var(--measure);text-wrap:pretty}
p+p{margin-block-start:.75em}
a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}
a:hover{color:var(--color-link-hover)}
strong{font-weight:var(--font-weight-semibold)}
small{font-size:var(--text-sm);color:var(--color-text-muted)}
blockquote{border-inline-start:2px solid var(--color-border-strong);padding-inline-start:var(--space-lg);color:var(--color-text-muted)}
hr{border:0;border-block-start:1px solid var(--color-border);margin-block:var(--space-xl)}
ul,ol{padding-inline-start:1.25rem}
li+li{margin-block-start:.35em}
code,pre{font-family:var(--font-mono);font-size:.9em}
code{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.1em .3em}
pre{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);overflow-x:auto}
pre code{background:none;border:0;padding:0}
.prose{color:var(--color-text);line-height:var(--leading-normal)}
.prose>*+*{margin-block-start:1em}
.prose h2,.prose h3{margin-block-start:1.5em}
.prose a{font-weight:var(--font-weight-medium)}
.prose li::marker{color:var(--color-text-muted)}
:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}
:focus:not(:focus-visible){outline:0}
::selection{background:var(--color-selection-bg);color:var(--color-selection-text)}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
th{text-align:start;font-weight:var(--font-weight-semibold);border-block-end:2px solid var(--color-border-strong);padding:var(--space-sm) var(--space-md)}
td{border-block-end:1px solid var(--color-border);padding:var(--space-sm) var(--space-md)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}
}
