* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--surface-alt); color: var(--ink); font-family: var(--font); line-height: 1.5; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: 320px; z-index: -1; background: radial-gradient(circle at 20% 0, color-mix(in srgb, var(--brand-accent) 24%, transparent), transparent 46%), linear-gradient(135deg, var(--brand-primary), #071521); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img, svg { display: block; }
[hidden] { display: none !important; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1; padding: 2.5rem 0 4rem; }
.site-header { min-height: 72px; color: white; background: rgba(7, 21, 33, .78); border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(14px); }
.site-header__inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: inherit; font-size: 1.2rem; font-weight: 800; text-decoration: none; }
.brand__mark { width: 36px; height: 36px; }
.brand__accent { color: var(--brand-accent); }
.site-nav, .site-nav__link { display: flex; align-items: center; gap: .5rem; }
.site-nav__link { color: inherit; font-weight: 700; text-decoration: none; }
.site-footer { margin-top: auto; background: #06121c; color: #d8e0e5; }
.site-footer__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.site-footer__links { display: flex; gap: 1rem; }
.site-footer__links a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 1000; padding: .7rem 1rem; background: white; border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.icon { width: 1.2em; height: 1.2em; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.15; }
@media (max-width: 640px) {
  .site-main { padding-top: 1.25rem; }
  .site-footer__inner { padding-block: 1.25rem; align-items: flex-start; flex-direction: column; }
}
