/* Shared light-touch styling. Keep page-specific content in its HTML file. */
html { -webkit-text-size-adjust: 100%; }
body { margin: 8px; background: #fff; }
img { max-width: 100%; height: auto; }
a:focus-visible { outline: 2px solid #224ca1; outline-offset: 4px; }

.site-nav {
  box-sizing: border-box;
  width: min(600px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: 6px;
  align-items: center;
  font: bold 16px/1.25 Arial, Helvetica, sans-serif;
}
.site-nav a { color: #333; padding: 2px 4px; text-decoration: underline; }
.site-nav a:visited { color: #555; }
.site-nav a:nth-child(3n + 1) { text-align: left; }
.site-nav a:nth-child(3n + 2) { text-align: center; }
.site-nav a:nth-child(3n) { text-align: right; }
.site-nav a[aria-current="page"] { color: #183e86; }
.site-contact { color: #003399; font: bold 16px/1.4 Georgia, "Times New Roman", serif; text-align: center; }
.site-contact a { color: #333; overflow-wrap: anywhere; }
.site-page .site-nav { margin-top: 24px; }

/* Missing-link page: keep the same centered, understated presentation as home. */
.site-404 {
  box-sizing: border-box;
  min-height: 100vh;
  margin: 0;
  padding: 9vh 16px 48px;
  color: #333;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
}
.not-found {
  width: min(600px, 100%);
  margin: 0 auto;
}
.not-found-logo { display: inline-block; }
.not-found-logo img {
  display: block;
  width: min(350px, 100%);
  height: auto;
}
.not-found-code {
  margin: 34px 0 4px;
  color: #003399;
  font: bold 16px/1.3 Georgia, "Times New Roman", serif;
  letter-spacing: .08em;
}
.not-found h1 {
  margin: 0;
  color: #333;
  font: bold 28px/1.2 Arial, Helvetica, sans-serif;
}
.not-found-message {
  margin: 14px 0 24px;
  font: 16px/1.5 Arial, Helvetica, sans-serif;
}
.not-found-home {
  display: inline-block;
  color: #333;
  font: bold 16px/1.4 Arial, Helvetica, sans-serif;
  text-underline-offset: 3px;
}
.not-found-home:visited { color: #555; }

@media (max-width: 640px) {
  .site-home .site-nav { margin-top: 8px; }
  .site-nav { width: min(400px, 100%); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 8px; }
  .site-nav a { padding: 8px 4px; text-align: center !important; }
  .site-nav a:last-child { grid-column: 1 / -1; }
  .site-contact { padding: 0 12px; }
  .site-page hr { max-width: 100%; }
  .site-page table { max-width: 100%; }
  .page-about table[width="600"],
  .page-specs table[width="600"],
  .page-motion table[width="600"] { width: 100%; }
  .page-about table[width="600"] > tbody > tr > td[height="434"],
  .page-specs table[width="600"] > tbody > tr > td[width="28%"],
  .page-specs table[width="600"] > tbody > tr > td[width="72%"],
  .page-motion table[width="600"] > tbody > tr > td[width="216"],
  .page-motion table[width="600"] > tbody > tr > td[width="361"] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: auto;
  }
  .page-about table[width="90%"] td[nowrap] {
    display: block;
    white-space: normal;
    text-align: left;
  }
  .page-specs td[width="28%"] p { margin: 12px auto; text-align: center; }
  .page-specs td[width="28%"] p br { display: none; }
  .page-specs td[width="28%"] img { float: none; display: inline-block; }
  .page-motion table[width="600"] > tbody > tr > td[width="10"] { display: none; }
}

@media (max-width: 480px) {
  .site-404 { padding-top: 7vh; }
  .not-found h1 { font-size: 25px; }
}