@font-face {
  font-family: "Stack Sans Text";
  src: url("/fonts/stack-sans-text.ttf") format("truetype");
  font-weight: 200 700;
  font-display: swap;
}
@font-face {
  font-family: "Stack Sans Headline";
  src: url("/fonts/stack-sans-headline.ttf") format("truetype");
  font-weight: 200 700;
  font-display: swap;
}
:root { color-scheme: light; font-family: "Stack Sans Text", sans-serif; color: #1a1a1a; background: #fffbf2; }
* { box-sizing: border-box; }
body { margin: 0; font-size: 17px; line-height: 1.7; }
a { color: inherit; text-underline-offset: .2em; }
a:hover { color: #174fbd; }
a:focus-visible { outline: 3px solid #246ef5; outline-offset: 5px; }
::selection { color: #1a1a1a; background: #dae9c4; }
.skip-link { position: absolute; top: 12px; left: 16px; padding: 8px 16px; background: #fffbf2; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
header, main, footer { max-width: 820px; margin-inline: auto; padding-inline: 28px; }
header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 30px; border-bottom: 1px solid #e9e6df; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 28px; font-weight: 600; line-height: 1; text-decoration: none; letter-spacing: -.03em; }
.brand img { width: 34px; height: 34px; border-radius: 9px; }
.back { font-size: 15px; }
main { padding-block: 58px 64px; }
h1, h2 { font-family: "Stack Sans Headline", sans-serif; font-weight: 500; line-height: 1.2; letter-spacing: -.025em; text-wrap: balance; }
h1 { margin: 0 0 16px; font-size: clamp(38px, 6vw, 58px); }
h2 { margin: 40px 0 12px; font-size: 27px; }
p, ul { margin: 0 0 18px; }
li + li { margin-top: 10px; }
ul { padding-left: 24px; }
.updated { color: #65635d; font-size: 15px; margin-bottom: 30px; }
.contents { margin-block: 28px 36px; padding-block: 22px; border-block: 1px solid #e9e6df; }
.contents strong { display: block; margin-bottom: 10px; font-weight: 600; }
.contents ul { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 0; margin: 0; list-style: none; font-size: 15px; }
.contents li + li { margin: 0; }
section { scroll-margin-top: 24px; }
footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 30px; padding-block: 24px 36px; border-top: 1px solid #e9e6df; font-size: 14px; }
footer nav { display: flex; gap: 20px; }
@media (max-width: 520px) {
  header, main, footer { padding-inline: 22px; }
  header { padding-block: 24px; }
  main { padding-block: 38px 44px; }
  h2 { font-size: 25px; }
  .back { font-size: 14px; }
}
