/* Minimal element defaults so specimens, cards and kits share one baseline. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-lh);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--text-heading);letter-spacing:var(--tr-display);line-height:var(--lh-display);margin:0 0 var(--sp-4);text-transform:uppercase}
h1{font-size:var(--type-h1-size)}h2{font-size:var(--type-h2-size)}h3{font-size:var(--type-h3-size)}
h4{font-family:var(--font-condensed);font-size:var(--fs-md);letter-spacing:var(--tr-label);font-weight:var(--fw-semibold)}
p{margin:0 0 var(--sp-4)}
a{color:var(--text-link);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover)}
strong{font-weight:var(--fw-semibold)}
::selection{background:var(--red-200);color:var(--navy-800)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.cs-eyebrow{font-family:var(--font-condensed);font-size:var(--fs-2xs);letter-spacing:var(--tr-eyebrow);text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--text-muted)}
.cs-script{font-family:var(--font-script);text-transform:none;letter-spacing:0;color:var(--text-accent)}
.cs-grain{position:relative}
.cs-grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:radial-gradient(rgba(14,34,51,.06) 1px,transparent 1px);background-size:3px 3px}
