/* Machine — base. Reset mínimo + defaults de página. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--fs-body-md);line-height:var(--lh-body-md);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-extrabold);margin:0;color:var(--text-primary);text-wrap:balance}
h1{font-size:var(--fs-h1-fluid);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}
h2{font-size:var(--fs-h2-fluid);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-bold)}
h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-bold)}
h4{font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4);font-weight:var(--fw-bold)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-brand);text-decoration:none;transition:color var(--t-hover)}
a:hover{color:var(--primary-active);text-decoration:underline;text-underline-offset:3px}
code,pre,kbd{font-family:var(--font-mono);font-size:var(--fs-code)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
img,svg{display:block;max-width:100%}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.15s!important;animation-iteration-count:1!important;transition-duration:.15s!important;scroll-behavior:auto!important}}
