/* Layout-only adaptations. Original artwork, palette, typography and copy remain. */
html { scroll-padding-top: 9rem; }
body, main, section, header, footer, .grid > *, .flex > * { min-width: 0; }
dd { overflow-wrap: anywhere; }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

@media (max-width: 1440px) {
  header.sticky { gap: clamp(1rem, 3vw, 3rem); }
  header.sticky [class~="pr-[10vw]"] { padding-right: 0; }
  header.sticky [class~="gap-[10vw]"] { gap: clamp(.25rem, 3vw, 3rem); }
  .home-hero h1 { margin-inline: clamp(2rem, 10vw, 9rem); font-size: clamp(5rem, 10.4vw, 9.375rem); line-height: .96; }
  .home-hero h1 span { margin-left: clamp(-4rem, -3vw, -1rem); }
  .home-hero > p { margin-inline: clamp(2rem, 8vw, 7rem); }
  .home-hero > button:first-of-type { margin-left: clamp(2rem, 8vw, 7rem); padding-inline: clamp(2rem, 8vw, 7rem); }
  .home-overview button { padding-inline: clamp(2rem, 6vw, 5rem); }
  .home-overview h2 { margin-left: 0; }
  .home-modules .grid > div { flex-wrap: wrap; }
  .home-modules .grid > div > div { flex-basis: 12rem; }
  .home-modules img { max-width: 100%; height: auto; }
}

@media (max-width: 1000px) {
  header.sticky { flex-wrap: wrap; column-gap: .5rem; row-gap: .25rem; }
  header.sticky > nav, header.sticky > [class~="flex-row"] {
    flex-basis: 100%; justify-content: center; flex-wrap: wrap; gap: .25rem;
  }
  header.sticky a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  header.sticky > img { height: 3rem; }
  header.sticky > a > img { height: 3rem; }
  main h1 { font-size: clamp(3.5rem, 11vw, 7rem); line-height: 1; }
  main dl.grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  main dl > div:nth-child(2) { border-right: 0; }
  main dl > div:nth-child(-n+2) { border-bottom: 1px solid #6b7280; }
  .home-overview > .flex { flex-direction: column; align-items: stretch; }
  .home-overview img { width: 100%; height: auto; }
  .home-modules { padding: 2rem; }
  .home-backdrop img { width: 100%; height: 100%; object-fit: cover; }
  footer > .grid { grid-template-columns: 1fr; gap: 1rem; }
  .error-panel { margin-inline: 1rem; }
  .error-panel [class~="text-[320px]"] { font-size: clamp(6rem, 23vw, 18rem); }
  .error-panel > p { margin-top: -2rem; font-size: 2.25rem; }
  .error-panel > [class~="m-20"] { margin: 1.5rem 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
}

@media (max-width: 640px) {
  html { scroll-padding-top: 10rem; }
  body > header:first-of-type { padding: .5rem .75rem; }
  body > header:first-of-type a { min-height: 44px; }
  body > header:first-of-type span { font-size: 1.25rem; line-height: 1.15; }
  body > header:first-of-type img { height: 1.4rem; flex-shrink: 0; }
  header.sticky { padding: .5rem .75rem; z-index: 30; }
  header.sticky [class~="flex-row"] { font-size: 1.25rem; }
  header.sticky [class~="flex-row"] a { padding-inline: .5rem; }
  main section { padding-inline: 1.25rem; }
  main section[class~="py-24"] { padding-block: 3rem; }
  main section[class~="py-16"] { padding-block: 2.5rem; }
  main section[class~="-mt-12"] { margin-top: 0; }
  main h1 { font-size: clamp(3rem, 13vw, 5rem); line-height: 1; overflow-wrap: break-word; }
  main h2[class~="text-5xl"] { font-size: 2.5rem; }
  main p[class~="text-3xl"] { font-size: 1.5rem; line-height: 1.3; }
  main .grid[class~="grid-cols-2"] { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  main .grid[class~="grid-cols-2"] > [class~="border-r-2"] { border-right: 0; border-bottom: 1px solid #6b7280; }
  main .rounded-lg[class~="p-10"] { padding: 1.25rem; }
  main a[class~="px-16"] { padding-inline: 1.25rem; max-width: 100%; text-align: center; }
  .download-cta { width: 100%; font-size: 1.75rem; }
  main section > .flex[class~="gap-10"] { flex-direction: column; align-items: stretch; padding: 1.5rem 0; gap: 1.25rem; }
  main section > .flex > [class~="w-1/3"] { width: 100%; }
  main section > .flex > img[class~="w-1/3"] { max-width: 28rem; margin-inline: auto; }
  summary { gap: .75rem; line-height: 1.2; }
  summary > span { flex-shrink: 0; }
  footer { padding: 1.5rem; }
  footer nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; }
  footer nav a { min-height: 44px; display: inline-flex; align-items: center; }

  .home-hero { padding: 2.5rem 1.25rem 6rem; }
  .home-hero h1 { margin: 0; font-size: clamp(3.75rem, 15vw, 6rem); line-height: .98; }
  .home-hero h1 span { margin-left: 0; }
  .home-hero > p { margin-inline: 0; font-size: 1.5rem; line-height: 1.25; }
  .home-hero > button { display: block; width: 100%; margin-inline: 0; }
  .home-hero > button:first-of-type { margin-left: 0; padding-inline: 1.25rem; }
  .home-hero > p:last-child { font-size: .875rem; margin-top: .75rem; }
  .home-backdrop { height: max(40rem, 90svh); }
  .home-modules { margin-top: -3rem; padding: 2rem 1.25rem; scroll-margin-top: 1rem; }
  .home-modules h2 { font-size: 3rem; line-height: 1; padding-inline: 0; }
  .home-modules .grid { grid-template-columns: minmax(0, 1fr); }
  .home-modules .grid > div { padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid #374151; gap: 1rem; }
  .home-modules .grid > div:last-child { border-bottom: 0; }
  .home-modules .grid > div > div { flex-basis: 100%; }
  .home-modules img { max-width: 100%; width: auto; max-height: 26rem; margin-inline: auto; object-fit: contain; }
  .home-overview { padding: 2rem 1.25rem; }
  .home-overview h2 { padding-inline: 0; font-size: 2.75rem; }
  .home-overview button { width: 100%; padding-inline: 1rem; }
}

@media (max-width: 480px) {
  main dl.grid { grid-template-columns: minmax(0, 1fr); }
  main dl > div { padding: .875rem 0; border-right: 0; border-bottom: 1px solid #6b7280; }
  main dl > div:last-child { border-bottom: 0; }
}
@media (max-height: 500px) and (max-width: 1000px) {
  header.sticky { position: relative; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
