@font-face {
  font-family: "Press Start 2P";
  src: url("assets/fonts/press-start-2p-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Google Fonts subset: © yuka非公式ファンアカウント */
@font-face {
  font-family: "DotGothic16";
  src: url("assets/fonts/dotgothic16-footer.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Google Fonts subset: ↗ */
@font-face {
  font-family: "Inter Arrow";
  src: url("assets/fonts/inter-arrow.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  color-scheme: light;
  --red: #ef0107;
  --deep-red: #a40813;
  --white: #fff;
  --ink: #211c25;
  --shadow: #610c1b;
  font-family: "Press Start 2P", monospace;
  font-synthesis: none;
  color: var(--white);
  background: var(--deep-red);
}

* { box-sizing: border-box; }
body, h1, h2, p, ul { margin: 0; }
body {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
.checker {
  flex: 0 0 8px;
  background: repeating-linear-gradient(90deg, var(--white) 0 16px, var(--red) 16px 32px);
}
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px;
  gap: 24px;
}
h1 { font-size: 18px; line-height: 22px; font-weight: 400; }
.header p { font-size: 10px; line-height: 14px; }
main {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 480px);
  justify-content: center;
  align-content: center;
  align-items: center;
  gap: 26px;
  padding: 4px 24px 20px;
}
.identity { display: flex; justify-content: center; }
.mascot { display: block; width: 128px; height: 192px; object-fit: contain; }
.socials { min-width: 0; }
h2 { font-size: 12px; font-weight: 400; line-height: 19px; margin-bottom: 16px; }
ul { list-style: none; padding: 0; display: grid; gap: 16px; }
.socials a {
  min-height: 84px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  border: 2px solid var(--shadow);
  box-shadow: 5px 5px 0 var(--shadow);
  color: var(--ink);
  background: var(--white);
  text-decoration: none;
}
.socials img { display: block; flex: 0 0 32px; image-rendering: pixelated; }
.label { flex: 1; min-width: 0; font-size: 14px; line-height: 24px; overflow-wrap: anywhere; }
.arrow { font: 700 20px/28px "Inter Arrow", sans-serif; }
.socials a:focus-visible { outline: 3px solid var(--white); outline-offset: 6px; }
.socials a:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--shadow); }
@media (hover: hover) {
  .socials a:hover { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--shadow); }
}
footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 24px;
  padding: 12px 24px 24px;
  font: 400 12px/17px "DotGothic16", sans-serif;
}
@media (min-width: 1024px) {
  .header { padding: 32px 72px; }
  h1 { font-size: 22px; line-height: 26px; }
  .header p { font-size: 12px; line-height: 17px; }
  main {
    grid-template-columns: minmax(0, 560px) minmax(0, 480px);
    gap: clamp(48px, 6.6667vw, 96px);
    padding: 28px 72px 40px;
  }
  .mascot { width: 224px; height: 336px; }
  footer { padding: 12px 72px 32px; }
}
@media (max-width: 359px) {
  .socials a { padding-inline: 16px; gap: 12px; }
  .label { font-size: 12px; }
}
