/* The homepage keeps its shared hero and uses four full-width colour bands.
   Tints of VGA cyan, magenta, green and yellow distinguish the sections. */
body.home {
  --home-cyan: #d1f0f0;
  --home-magenta: #f3dbf3;
  --home-green: #d1f0d1;
  --home-yellow: #ececc7;
}
[data-theme="dark"] body.home {
  --home-cyan: #001f1f;
  --home-magenta: #180018;
  --home-green: #001f00;
  --home-yellow: #252500;
}
body.home main.wrap { max-width: none; padding-inline: 0; padding-bottom: 0; }
body.home main.wrap > :is(.home-animation, .home-intro) { width: calc(100% - 2 * var(--gap)); }
body.home main.wrap > .home-explore { max-width: none; }
.home-explore :is(h2, h3) { border: 0; padding: 0; }
.home-explore h3 { margin: 0 0 16px; font-size: 36px; }
.home-explore p { max-width: 66ch; font-size: 14px; line-height: 1.75; }
.home-explore p:last-child { margin-bottom: 0; }
.home-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1324px;
  width: calc(100% - 2 * var(--gap));
  margin: 0 auto 36px;
  border-block: 1px solid var(--ink);
}
.home-map a { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 22px 16px; text-decoration: none; }
.home-map a + a { border-left: 1px solid var(--ink); }
.home-map b { font: 27px/1.1 var(--font-px); }
.home-map span:first-child { font: 20px/1 var(--font-px); }
.home-map span:last-child { margin-left: auto; font: 26px/1 var(--font-px); }
.home-chapter { --home-tint: var(--home-cyan); padding: 48px var(--gap) 60px; background: var(--home-tint); scroll-margin-top: 36px; }
.home-chapter--software { --home-tint: var(--home-magenta); }
.home-chapter--hardware { --home-tint: var(--home-green); }
.home-chapter--build { --home-tint: var(--home-yellow); }
.home-inner { max-width: 1324px; margin-inline: auto; }
.home-heading { display: flex; align-items: baseline; gap: 18px; margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); }
.home-heading h2 { margin: 0; font-size: clamp(38px, 4.2vw, 56px); line-height: 1; }
.home-section-number { font: 24px/1 var(--font-px); }
.home-pair { display: grid; grid-template-columns: minmax(0, 644px) minmax(0, 1fr); gap: 44px; align-items: start; }
.home-pair > * { min-width: 0; margin: 0; }
.home-copy { padding: 16px 0; }
.home-copy p { max-width: 60ch; }
.home-copy .btn { margin: 8px 4px 4px; }
.home-copy-section { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--ink); }
.home-link, .home-links { font: 24px/1.2 var(--font-px); }
.home-link { display: inline-block; }
.home-links { display: flex; flex-wrap: wrap; gap: 12px 26px; }
.home-explore .shots__caps { padding: 16px 22px; }
.home-explore [data-shots-img] { aspect-ratio: 4 / 3; object-fit: contain; }
.home-explore [data-shots-img][data-shots-smooth] { image-rendering: auto; }
.home-explore .shots__cap { font-size: 13px; line-height: 1.5; }
.home-explore .shots__cap b { font-size: 22px; }
.home-explore .shots__bar { padding: 12px 22px; }
.home-shots-note { flex-basis: 100%; font-size: 12px; }
.home-explore .shots__btn { font-size: 20px; padding: 6px 14px; }
.home-wire { border: 1px solid var(--ink); box-shadow: none; }
.home-screen-link { display: block; border-bottom: 1px solid var(--ink); }
.home-screen-link img { display: block; width: 100%; max-width: 640px; }
.home-screen-link:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.home-wire__copy { padding: 24px 28px 28px; }
.home-story-list { margin-top: 28px; }
.home-story-list > a { display: grid; grid-template-columns: 128px minmax(0, 1fr) 20px; gap: 20px; align-items: center; padding: 20px 0; border-top: 1px solid var(--ink); text-decoration: none; }
.home-story-list img { display: block; width: 128px; height: 96px; object-fit: contain; }
.home-story-list b { display: block; font: 28px/1.05 var(--font-px); }
.home-story-list a > span > span { display: block; margin-top: 8px; font-size: 12px; line-height: 1.6; }
.home-story-list a > span:last-child { font: 26px/1 var(--font-px); }
.home-gallery-link { padding-top: 22px; border-top: 1px solid var(--ink); }
.home-gallery-link p { margin: 12px 0 0; font-size: 12px; }
.home-hardware-photo > a { display: block; }
.home-hardware-photo img { image-rendering: auto; }
.home-machine-list { margin-block: 28px; border-bottom: 1px solid var(--ink); }
.home-machine-list > a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 1px solid var(--ink); text-decoration: none; }
.home-machine-list b { display: block; font: 28px/1.05 var(--font-px); }
.home-machine-list small { display: block; margin-top: 6px; font-size: 12px; }
.home-video__heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.home-video__heading h3 { margin: 0; }
.home-video > p { margin-bottom: 22px; }
.home-video .vlog { box-shadow: none; }
.home-video .vlog__note { margin-bottom: 0; }
.home-references { padding-top: 0; }
.home-references > section + section { padding-top: 24px; margin-top: 28px; border-top: 1px solid var(--ink); }
.home-references h3 { font-size: 34px; }
.home-references h3 a { text-decoration: none; }
.home-references .home-links { font-size: 21px; gap: 12px 22px; }
.home-community { display: flex; align-items: center; justify-content: space-between; gap: 32px; max-width: 1324px; width: calc(100% - 2 * var(--gap)); margin: 0 auto; padding: 36px 0 40px; }
.home-community h2 { margin: 0 0 12px; font-size: 36px; }
.home-community p { margin: 0; font-size: 13px; }

@media (max-width: 1100px) {
  .home-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .home-copy { padding-top: 8px; }
  .home-explore p { font-size: 13px; }
  .home-map a { gap: 10px; padding-inline: 12px; }
  .home-map b { font-size: 25px; }
  .home-map span:last-child { display: none; }
  .home-story-list > a { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .home-story-list img { width: 96px; height: 72px; }
  .home-story-list b { font-size: 26px; }
  .home-story-list a > span:last-child { display: none; }
  .home-wire__copy { padding: 24px; }
  .home-community { align-items: start; }
}
@media (max-width: 760px) {
  .home-map { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 24px; }
  .home-map a { padding: 18px 12px; }
  .home-map a:nth-child(3) { border-left: 0; }
  .home-map a:nth-child(n+3) { border-top: 1px solid var(--ink); }
  .home-chapter { padding-block: 36px 44px; scroll-margin-top: 44px; }
  .home-heading { gap: 12px; margin-bottom: 24px; padding-bottom: 16px; }
  .home-heading h2 { font-size: 40px; }
  .home-section-number { font-size: 22px; }
  .home-pair { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .home-pair > :is(.home-wire, .home-hardware-photo, .home-video) { width: 100%; max-width: 644px; margin-inline: auto; }
  .home-copy { padding: 0; }
  .home-explore h3 { font-size: 32px; }
  .home-copy-section { margin-top: 28px; padding-top: 24px; }
  .home-explore .shots__btn { min-height: 44px; }
  .home-wire__copy { padding: 22px; }
  .home-story-list > a { grid-template-columns: 96px minmax(0, 1fr); }
  .home-community { flex-direction: column; gap: 24px; padding-block: 28px 36px; }
}
@media (max-width: 380px) {
  .home-map b { font-size: 23px; }
  .home-map a { gap: 8px; padding-inline: 10px; }
  .home-heading h2 { font-size: 36px; }
  .home-wire__copy { padding: 20px; }
  .home-link, .home-links { font-size: 22px; }
  .home-story-list > a { gap: 12px; }
}
