@font-face {
  font-family: "Contest Sans";
  src: url("fonts/contest-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --font-sans: "Contest Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  --ink: #111b36;
  --accent: #5358d9;
}
body { font-family: var(--font-sans); font-weight: 400; line-height: 1.85; }
h1, h2, h3 { font-family: var(--font-sans); text-wrap: balance; }
h1 { font-weight: 800; letter-spacing: -.025em; }
h2 { font-weight: 700; letter-spacing: -.02em; }
h3 { font-weight: 650; letter-spacing: -.01em; }
p { text-wrap: pretty; }
.brand { font-size: 20px; font-weight: 750; letter-spacing: -.025em; color: var(--ink); }
.brand small { font-weight: 450; letter-spacing: .08em; }
.nav-wrap nav a { font-weight: 500; letter-spacing: .015em; }
.nav-wrap nav a:hover, .nav-wrap nav a.active {
  color: var(--accent); background: #f1f2ff;
}
.portal-title h2 { font-weight: 750; color: var(--ink); letter-spacing: -.025em; }
.light-title h2 { color: #fff; }
.portal-title > span { background: #6868de; width: 32px; height: 3px; }
.intro-copy { font-weight: 400; }
.competition-summary h3 { font-weight: 700; }
.detail-page-title h1 { font-weight: 800; }
::selection { background: #dbdcff; color: #161743; }
input, textarea { caret-color: var(--accent); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: #6a64dc; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
@media (max-width: 680px) {
  .brand { font-size: 16px; }
  .brand small { font-size: 9px; }
  .portal-title h2 { font-size: 28px; }
}
@media (max-width: 370px) {
  .brand { font-size: 12px; }
  .brand small { font-size: 7px; }
}
