*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--body-c);line-height:1.7;font-size:var(--fs-md);min-height:100vh;display:flex;flex-direction:column}
img,svg,video{max-width:100%;display:block;height:auto}
a{color:var(--primary);text-decoration:none;transition:color var(--tr)}
a:hover{color:var(--primary-600)}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:inherit}
h1,h2,h3,h4,h5,h6{color:var(--ink);line-height:1.35;font-weight:800}
h1{font-size:var(--fs-3xl)}
h2{font-size:var(--fs-2xl)}
h3{font-size:var(--fs-xl)}
h4{font-size:var(--fs-lg)}
h5{font-size:var(--fs-md)}
h6{font-size:var(--fs-sm)}
main{flex:1}
.container{width:min(1200px,100% - 2rem);margin-inline:auto}
.section{padding-block:3.5rem}
.section-head{margin-bottom:2rem;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem}
.section-head p{color:var(--muted);max-width:56ch}
.muted{color:var(--muted)}
.small{font-size:var(--fs-sm)}
.xs{font-size:var(--fs-xs)}
.center{text-align:center}
.bold{font-weight:700}
.ink{color:var(--ink)}
.success-text{color:var(--success)}
.danger-text{color:var(--danger)}
.star-text{color:var(--star)}
.grid{display:grid;gap:1.25rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.flex{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.flex-between{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:.75rem}
.gap-lg{gap:1.5rem}
.hidden{display:none !important}
[hidden]{display:none !important}
::selection{background:var(--primary-100)}
:focus-visible{outline:3px solid var(--primary-300);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;inset-inline-start:-999px;top:8px;background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:var(--radius-sm);z-index:2000}
.skip-link:focus{inset-inline-start:8px;color:#fff}
.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}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes drawCheck{from{stroke-dashoffset:80}to{stroke-dashoffset:0}}
.anim-up{animation:fadeUp .5s ease both}
.anim-pop{animation:popIn .35s ease both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}
