*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg-page);background-image:var(--bg-page-gradient);color:var(--text-primary);font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-400,400);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-heading);line-height:var(--lh-heading);margin:0}
h1{font-size:var(--fs-display-1);font-weight:var(--fw-bold);letter-spacing:var(--ls-display);line-height:var(--lh-display)}
p{margin:0}
a{color:var(--link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--link-hover)}
::selection{background:var(--yellow-500);color:#fff}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@keyframes sr-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes sr-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
@keyframes sr-pulse{0%,100%{opacity:.55}50%{opacity:1}}
