*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-void);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased}
::selection{background:var(--selection-bg);color:var(--selection-fg)}
a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--border-accent);padding-bottom:1px;transition:var(--transition-control)}
a:hover{color:var(--text-accent);border-bottom-color:var(--text-accent)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-heading)}
p{margin:0 0 var(--space-5)}
hr{border:0;border-top:var(--border-width) solid var(--border-hairline);margin:var(--space-6) 0}
.u-label{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.u-measure{max-width:var(--measure-prose)}
.u-grain{position:relative}
.u-grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>")}
