:where(.sc-scope, .sc-scope *, .sc-scope *::before, .sc-scope *::after) {
  box-sizing: border-box;
}

.sc-scope {
  color: var(--sc-color-text);
  font-family: var(--sc-font-body);
  font-size: var(--sc-font-size-1);
  line-height: var(--sc-line-height-body);
  letter-spacing: var(--sc-letter-spacing-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.sc-scope ::selection {
  background: var(--sc-color-selection);
  color: var(--sc-color-text);
}

.sc-container {
  inline-size: min(100% - (2 * var(--sc-space-page-inline)), var(--sc-container-default));
  margin-inline: auto;
}

.sc-container--reading { max-inline-size: var(--sc-container-reading); }
.sc-container--compact { max-inline-size: var(--sc-container-compact); }
.sc-container--wide { max-inline-size: var(--sc-container-wide); }
.sc-container--editorial { max-inline-size: var(--sc-container-editorial); }
.sc-container--full { inline-size: 100%; max-inline-size: none; }

.sc-grid {
  --sc-grid-columns: 4;
  display: grid;
  grid-template-columns: repeat(var(--sc-grid-columns), minmax(0, 1fr));
  gap: var(--sc-space-grid);
}

@media (min-width: 48rem) {
  .sc-grid { --sc-grid-columns: 8; }
}

@media (min-width: 64rem) {
  .sc-grid { --sc-grid-columns: 12; }
}

.sc-display,
.sc-heading-1,
.sc-heading-2,
.sc-heading-3,
.sc-heading-4,
.sc-heading-5,
.sc-heading-6 {
  margin: 0;
  color: inherit;
  font-family: var(--sc-font-display);
  font-weight: var(--sc-font-weight-regular);
  letter-spacing: var(--sc-letter-spacing-tight);
}

.sc-display { font-size: var(--sc-font-size-display); line-height: var(--sc-line-height-tight); }
.sc-heading-1 { font-size: var(--sc-font-size-6); line-height: var(--sc-line-height-tight); }
.sc-heading-2 { font-size: var(--sc-font-size-5); line-height: var(--sc-line-height-heading); }
.sc-heading-3 { font-size: var(--sc-font-size-4); line-height: var(--sc-line-height-heading); }
.sc-heading-4 { font-size: var(--sc-font-size-3); line-height: var(--sc-line-height-heading); }
.sc-heading-5 { font-size: var(--sc-font-size-2); line-height: var(--sc-line-height-heading); }
.sc-heading-6 { font-size: var(--sc-font-size-1); line-height: var(--sc-line-height-heading); }

.sc-overline {
  font-size: var(--sc-font-size-00);
  font-weight: var(--sc-font-weight-semibold);
  letter-spacing: var(--sc-letter-spacing-wider);
  line-height: var(--sc-line-height-ui);
  text-transform: uppercase;
}

.sc-button {
  display: inline-flex;
  min-block-size: var(--sc-size-control-md);
  align-items: center;
  justify-content: center;
  gap: var(--sc-space-3);
  padding: var(--sc-space-4) var(--sc-space-6);
  border: var(--sc-border-width) solid transparent;
  border-radius: var(--sc-radius-none);
  background: var(--sc-color-action);
  color: var(--sc-color-text-inverse);
  cursor: pointer;
  font: var(--sc-font-weight-semibold) var(--sc-font-size-0) / var(--sc-line-height-ui) var(--sc-font-body);
  letter-spacing: var(--sc-letter-spacing-wide);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: var(--sc-transition-color), var(--sc-transition-transform);
}

.sc-button:hover { background: var(--sc-color-action-hover); color: var(--sc-color-text-inverse); }
.sc-button:active { background: var(--sc-color-action-active); transform: translateY(1px); }
.sc-button:focus-visible { outline: 2px solid var(--sc-color-focus); outline-offset: 3px; }
.sc-button:disabled,
.sc-button[aria-disabled="true"] { cursor: not-allowed; opacity: 0.46; pointer-events: none; }

.sc-u-visually-hidden {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.sc-u-skip-link {
  position: fixed;
  inset: var(--sc-space-4) auto auto var(--sc-space-4);
  z-index: var(--sc-z-toast);
  padding: var(--sc-space-3) var(--sc-space-5);
  background: var(--sc-color-surface-inverse);
  color: var(--sc-color-text-inverse);
  transform: translateY(-200%);
}

.sc-u-skip-link:focus { transform: translateY(0); }
