/* Base/reset — mirrors the prototypes' helmet style block. */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--ss-page);
  font-family: var(--ss-font);
  color: var(--ss-text);
  font-size: var(--ss-fs-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ss-text); text-decoration: none; }
a:hover { color: var(--ss-accent); }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-family: var(--ss-font-display); text-transform: uppercase; letter-spacing: .01em; }
h1 { font-size: var(--ss-fs-h1); font-weight: 700; line-height: .98; }
h2 { font-size: var(--ss-fs-h2); font-weight: 700; line-height: 1.05; }
p { margin: 0 0 1em; color: var(--ss-body); }

.ss-section { max-width: var(--ss-max-w); margin: 0 auto; padding-left: var(--ss-pad-x); padding-right: var(--ss-pad-x); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ss-rise { animation: rise .55s ease .05s both; }
.ss-rise--2 { animation-delay: .15s; }
.ss-rise--3 { animation-delay: .18s; }
@media (prefers-reduced-motion: reduce) { .ss-rise, .ss-rise--2, .ss-rise--3 { animation: none; } }
