/* Home-only composition. Shared typography, shell and controls live separately. */
.welcome { position: relative; background: #bcecf6; }
.welcome-art { display: block; width: 100%; height: clamp(540px, 57vw, 760px); object-fit: cover; object-position: center; }
.welcome-copy { position: absolute; top: 26px; inset-inline: 20px; text-align: center; }
.welcome-copy h1 { font-size: clamp(36px, 4.2vw, 58px); }
.welcome-copy p { font-size: clamp(18px, 1.8vw, 24px); margin-top: 8px; }
.welcome-actions { position: absolute; top: 150px; inset-inline: 20px; display: flex; align-items: center; flex-direction: column; gap: 8px; }
.restoration { display: grid; grid-template-columns: 1.15fr 1fr; gap: 72px; padding-block: 64px; }
.restoration-heading p { margin-bottom: 18px; }
.restoration-work article + article { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.restoration-work p { margin-bottom: 10px; }
.downloads { display: grid; grid-template-columns: 1fr 32%; align-items: center; gap: 48px; border-block: 1px solid var(--line); padding-block: 56px; }
.download-copy > p { margin-bottom: 20px; }
.download-copy > .game-button { margin: 4px 0 28px; }
.download-copy .download-label { margin-bottom: 12px; }
.platforms { display: flex; flex-wrap: wrap; gap: 10px; direction: ltr; justify-content: flex-end; margin-bottom: 18px; }
.version { font-size: 14px; color: #4f5d42; min-height: 25px; }
.repo-link { display: block; font-size: 14px; margin-top: 10px; }
.resident { display: flex; align-items: center; justify-content: center; }
.resident img { display: block; height: 350px; width: auto; object-fit: contain; }
.questions { padding-block: 56px; }
.faq-link { display: inline-block; margin-top: 24px; }





@media (max-width: 900px) {
  .welcome { display: flex; flex-direction: column; background: var(--paper); }
  .welcome-art { height: auto; order: 3; }
  .welcome-copy { position: static; padding: 20px 20px 0; }
  .welcome-copy h1 { font-size: 34px; }
  .welcome-copy p { max-width: 280px; margin: 10px auto 0; font-size: 18px; }
  .welcome-actions { position: static; padding: 22px 20px 30px; }

  .restoration { gap: 36px; }

}
@media (max-width: 700px) {
  .restoration { grid-template-columns: 1fr; gap: 30px; padding-block: 40px; }
  .downloads { grid-template-columns: 1fr; gap: 28px; padding-block: 40px; }
  .download-copy { text-align: center; }
  .platforms { justify-content: center; }
  .resident img { height: 220px; }
  .questions { padding-block: 40px; }


}
