*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
.ui2-shell, .ui2-pilot {
  margin: 0;
  color: var(--ui2-text-primary);
  background: var(--ui2-surface);
  font-family: var(--ui2-font-family);
  font-size: var(--ui2-type-body-size);
  line-height: var(--ui2-type-body-line-height);
}
.ui2-shell.ui2-no-scroll, .ui2-pilot.ui2-no-scroll { overflow: hidden; }
.ui2-shell img, .ui2-pilot img { max-width: 100%; display: block; }
.ui2-shell button, .ui2-shell input, .ui2-shell select, .ui2-shell textarea,
.ui2-pilot button, .ui2-pilot input, .ui2-pilot select, .ui2-pilot textarea { font: inherit; }
.ui2-shell :focus-visible, .ui2-pilot :focus-visible { outline: 3px solid var(--ui2-focus); outline-offset: 3px; }
.ui2-skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; min-height: 44px; padding: 10px 14px; color: var(--ui2-surface); background: var(--ui2-text-primary); border-radius: var(--ui2-radius-sm); transform: translateY(-160%); }
.ui2-skip-link:focus { transform: none; }
.ui2-page { width: min(var(--ui2-content-max-width), calc(100% - (2 * var(--ui2-page-padding-desktop)))); margin-inline: auto; }
.ui2-reading { max-width: var(--ui2-reading-max-width); }
.ui2-display { font-size: var(--ui2-type-display-size); line-height: var(--ui2-type-display-line-height); font-weight: var(--ui2-type-display-weight); }
.ui2-h1 { font-size: var(--ui2-type-h1-size); line-height: var(--ui2-type-h1-line-height); font-weight: var(--ui2-type-h1-weight); }
.ui2-h2 { font-size: var(--ui2-type-h2-size); line-height: var(--ui2-type-h2-line-height); font-weight: var(--ui2-type-h2-weight); }
.ui2-h3 { font-size: var(--ui2-type-h3-size); line-height: var(--ui2-type-h3-line-height); font-weight: var(--ui2-type-h3-weight); }
.ui2-metadata { color: var(--ui2-text-secondary); font-size: var(--ui2-type-metadata-size); line-height: var(--ui2-type-metadata-line-height); font-weight: var(--ui2-type-metadata-weight); }
.ui2-button { min-height: 46px; padding: 10px 18px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--ui2-radius-sm); cursor: pointer; font-weight: 800; line-height: 1.2; text-decoration: none; }
.ui2-button--primary { color: var(--ui2-surface); background: var(--ui2-brand-secondary); }
.ui2-button--primary:hover { color: var(--ui2-surface); background: var(--ui2-red-dark); }
.ui2-button--secondary { color: var(--ui2-brand-primary); background: var(--ui2-surface); border-color: var(--ui2-border); }
.ui2-search-input { width: 100%; min-height: 54px; padding: 12px 16px; color: var(--ui2-text-primary); background: var(--ui2-surface); border: 1px solid var(--ui2-border); border-radius: var(--ui2-radius-sm); }
.ui2-favorite-button { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--ui2-border); border-radius: var(--ui2-radius-pill); background: var(--ui2-surface); color: var(--ui2-brand-secondary); font-size: 1.35rem; cursor: pointer; }
.ui2-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ui2-space-xs); }
.ui2-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }
.ui2-content-card, .ui2-hub-card, .ui2-utility-card { color: var(--ui2-text-primary); background: var(--ui2-surface); border: 1px solid var(--ui2-border); border-radius: var(--ui2-radius-md); }
.ui2-content-card { overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ui2-content-card:hover { transform: translateY(-3px); border-color: var(--ui2-border); box-shadow: var(--ui2-shadow-card); }
.ui2-hub-card { padding: var(--ui2-space-md); border-top: 4px solid var(--ui2-hub-accent, var(--ui2-brand-accent)); }
.ui2-utility-card { padding: var(--ui2-space-lg); }
@media (max-width: 800px) {
  .ui2-page { width: min(740px, calc(100% - (2 * var(--ui2-page-padding-tablet)))); }
}
@media (max-width: 430px) {
  .ui2-page { width: calc(100% - (2 * var(--ui2-page-padding-mobile))); }
}
@media (prefers-reduced-motion: reduce) {
  .ui2-shell *, .ui2-shell *::before, .ui2-shell *::after,
  .ui2-pilot *, .ui2-pilot *::before, .ui2-pilot *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
