*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:var(--fw-regular);line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh}

h1,h2,h3,h4,h5,h6{font-weight:var(--fw-bold);line-height:1.25;color:var(--text);letter-spacing:-.01em}
h1{font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);letter-spacing:-.02em}
h2{font-size:var(--fs-3xl);letter-spacing:-.015em}
h3{font-size:var(--fs-2xl)}
h4{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}
h5{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}
h6{font-size:var(--fs-base);font-weight:var(--fw-semibold)}

p{line-height:1.7;color:var(--text)}
a{color:var(--primary);text-decoration:none;transition:color var(--t-fast) var(--ease)}
a:hover{color:var(--primary-hover)}
strong,b{font-weight:var(--fw-semibold)}
small{font-size:var(--fs-sm)}
ul,ol{padding-left:1.25rem;line-height:1.7}
li{margin-bottom:.25rem}

button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit;color:inherit}
input,select,textarea{font-family:inherit;font-size:inherit}

code,pre{font-family:var(--font-mono)}
code{background:var(--surface-alt);padding:.125em .375em;border-radius:var(--r-sm);font-size:.9em;color:var(--indigo-700)}

:focus-visible{outline:3px solid var(--indigo-400);outline-offset:2px;border-radius:var(--r-sm)}
::selection{background:var(--indigo-200);color:var(--indigo-900)}

img,svg{max-width:100%;display:block}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hidden{display:none!important}

.text-muted{color:var(--text-muted)}
.text-subtle{color:var(--text-subtle)}
.text-primary{color:var(--primary)}
.text-success{color:var(--success-600)}
.text-danger{color:var(--danger-600)}
.text-warning{color:var(--warning-600)}
.text-center{text-align:center}
.text-sm{font-size:var(--fs-sm)}
.text-xs{font-size:var(--fs-xs)}
.text-lg{font-size:var(--fs-lg)}

.fw-medium{font-weight:var(--fw-medium)}
.fw-semibold{font-weight:var(--fw-semibold)}
.fw-bold{font-weight:var(--fw-bold)}

.mono{font-family:var(--font-mono)}

.flex{display:flex}
.flex-col{display:flex;flex-direction:column}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}

.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}
.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.mb-8{margin-bottom:var(--sp-8)}

.w-full{width:100%}
