*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-synthesis-weight:none}
h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);color:var(--ink-strong);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-weight:600;text-wrap:balance}
h1{font-size:var(--text-3xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}
h5{font-size:var(--text-base)}h6{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-muted);font-weight:600}
p{text-wrap:pretty}
a{color:var(--primary);text-decoration:none;transition:color var(--dur-1) var(--ease)}
a:hover{color:var(--primary-hover);text-decoration:underline;text-underline-offset:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--r-xs)}
code,kbd,samp,.mono{font-family:var(--font-mono);font-size:0.92em;font-feature-settings:'zero' 1}
hr{border:0;border-top:1px solid var(--line)}
img,svg{display:block;max-width:100%}
[hidden]{display:none !important}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--primary-soft);color:var(--primary-soft-ink)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-full);border:3px solid var(--canvas)}
::-webkit-scrollbar-thumb:hover{background:var(--ink-subtle)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}

.u-mono{font-family:var(--font-mono)}
.u-muted{color:var(--ink-muted)}
.u-subtle{color:var(--ink-subtle)}
.u-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-0.01em}
.u-eyebrow{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-subtle)}
.u-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-row{display:flex;align-items:center;gap:var(--s-3)}
.u-stack{display:flex;flex-direction:column;gap:var(--s-3)}
.u-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
