*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);margin:0;font-weight:var(--weight-medium);text-wrap:balance}
h1{font-size:var(--text-h1);line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}
h2{font-size:var(--text-h2);line-height:1.1;letter-spacing:var(--tracking-heading)}
h3{font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:var(--tracking-heading)}
h4{font-size:var(--text-h4);line-height:1.3;font-weight:var(--weight-semibold)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--sage-600)}
::selection{background:var(--navy-900);color:var(--white)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
