/* Source-owned JavaScript Home. Derived from the accepted v7 composition;
   all content styles are scoped, and existing site chrome remains shared. */
.javascript-home { color: var(--dpu-text); font-size: 15px; line-height: 1.65; }
.javascript-home *, .javascript-home *::before, .javascript-home *::after { box-sizing: border-box; }
.javascript-home :is(h1,h2,h3,p,figure,ul,dl) { margin: 0; }
.javascript-home :is(h1,h2,h3) { color: var(--dpu-ink); line-height: 1.25; font-weight: 600; }
.javascript-home h1 { font-size: clamp(30px, 3.2vw, 40px); letter-spacing: -.025em; }
.javascript-home h2 { font-size: 27px; letter-spacing: -.02em; }
.javascript-home h3 { font-size: 19px; letter-spacing: -.01em; }
.javascript-home p + p { margin-top: 14px; }
.javascript-home a { color: var(--dpu-blue); text-underline-offset: 3px; }
.javascript-home a:hover { color: var(--dpu-blue-hover); }
.javascript-home :is(a,button):focus-visible { outline: 2px solid var(--dpu-focus); outline-offset: 4px; border-radius: 2px; }
.javascript-home :is(section,h2) { scroll-margin-top: 24px; }
.javascript-home img { display: block; max-width: 100%; height: auto; }
/* Standalone screenshots use the standard frame; gallery cards own theirs. */
.javascript-home :is(.hero-figure,.builder-figure) img {
  background: #fff; border-radius: 6px;
  box-shadow: 0 0 0 5px #fff, 0 0 12px 2px rgba(0,0,0,.4);
}
.javascript-home-page { margin: 0 auto; padding-block: 48px 56px; }
.javascript-home .eyebrow { font-size: 13px; font-weight: 600; color: #607486; margin-bottom: 12px !important; }
.javascript-home .eyebrow a { color: inherit; text-decoration: none; }
.javascript-home .intro-copy { max-width: 780px; font-size: 18px; line-height: 1.65; margin-top: 18px !important; }
.javascript-home .primary-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.javascript-home .button { min-height: 42px; padding: 9px 17px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; max-width: 100%; border: 1px solid #b2c2cc; border-radius: 4px; background: #fff; color: #284e68; font-size: 14px; font-weight: 500; line-height: 1.5; text-decoration: none; text-align: center; }
.javascript-home .button:hover { background: #f3f7fa; border-color: #7c9db2; }
.javascript-home .button.primary { background: var(--dpu-blue); border-color: var(--dpu-blue); color: #fff; }
.javascript-home .button.primary:hover { background: var(--dpu-blue-hover); border-color: var(--dpu-blue-hover); color: #fff; }
.javascript-home .launch::before { content: ''; width: 15px; height: 15px; background: currentColor; flex: none; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6m0-6L10 14M10 5H5a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-5'/%3E%3C/svg%3E") center / contain no-repeat; }
.javascript-home .quiet-link { margin-left: 5px; font-size: 14px; }
.javascript-home .quiet-link span { margin-left: 4px; }
.javascript-home .hero-figure { width: 100%; margin: 36px 0 0 !important; }
.javascript-home .hero-figure img { width: 100%; }
.javascript-home .hero-figure figcaption { margin-top: 10px; color: #607282; font-size: 12px; text-align: center; }
.javascript-home .chapter { margin-top: 68px; }
.javascript-home .section-heading { max-width: 800px; margin-bottom: 28px; }
.javascript-home .section-heading p { margin-top: 12px; font-size: 16px; }
.javascript-home .view-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.javascript-home .view-card { min-width: 0; border: 1px solid #d9e1e7; border-radius: 5px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.javascript-home .view-media { flex: none; overflow: hidden; border-bottom: 1px solid #e4e9ed; background: #fff; }
.javascript-home .view-media img { display: block; width: 100%; height: auto; }
.javascript-home .view-copy { padding: 22px 24px 20px; display: flex; flex-direction: column; flex: 1; }
.javascript-home .view-title-row { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.javascript-home .view-title-row h3 { font-size: 20px; }
.javascript-home .edition-labels { display: inline-flex; gap: 5px; flex: none; }
.javascript-home .view-description { font-size: 14px; line-height: 1.7; flex: 1; }
.javascript-home .view-component { font-size: 11px; color: #657786; margin-top: 14px !important; }
.javascript-home .view-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; margin-top: 8px !important; font-size: 13px; }
.javascript-home .view-links a:last-child:not(:only-child) { white-space: nowrap; }
.javascript-home .gallery-note { margin-top: 24px !important; max-width: 840px; font-size: 14px; color: #607282; }
.javascript-home .application-section { padding-top: 40px; border-top: 1px solid #dce4e9; }
.javascript-home .story-grid, .javascript-home .start-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 44px; }
.javascript-home .story-grid article { position: relative; padding-top: 14px; }
.javascript-home .story-mark { position: absolute; top: 0; left: 0; width: 38px; height: 3px; border-radius: 1px; }
.javascript-home .story-mark.green { background: #6aa84f; }
.javascript-home .story-mark.blue { background: #3c78d8; }
.javascript-home .story-grid h3, .javascript-home .start-grid h3 { margin-bottom: 12px; }
.javascript-home .story-grid p, .javascript-home .start-grid p { font-size: 15px; }
.javascript-home .edition-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.javascript-home .edition { padding: 28px; border: 1px solid #d9e1e7; border-top: 3px solid #e5cf94; background: #fff5d9; border-radius: 4px; display: flex; flex-direction: column; }
.javascript-home .edition.pro { border-top-color: #bfd2e4; background: #edf4fd; }
.javascript-home .edition-kind { font-size: 12px; font-weight: 600; color: #617583; margin-bottom: 6px !important; }
.javascript-home .edition.lite h3 { color: #785710; }
.javascript-home .edition.pro h3 { color: #275d8a; }
.javascript-home .edition h3 { font-size: 24px; margin-bottom: 16px; }
.javascript-home .edition p { font-size: 15px; }
.javascript-home .edition-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: 24px; margin-top: auto; font-size: 13px; }
.javascript-home .builder-section { padding-top: 40px; border-top: 1px solid #dce4e9; }
.javascript-home .builder-figure { width: 100%; margin: 0 0 30px !important; }
.javascript-home .builder-figure img { width: 100%; }
.javascript-home .resource-strip { margin-top: 50px; padding-top: 24px; border-top: 1px solid #dce4e9; font-size: 14px; }
@media(max-width: 900px) {
  .javascript-home .view-grid, .javascript-home .edition-grid { gap: 20px; }
  .javascript-home .view-title-row { align-items: flex-start; flex-direction: column; gap: 8px; }
  .javascript-home .story-grid, .javascript-home .start-grid { gap: 28px; }
  .javascript-home .view-copy { padding: 20px; }
}
@media(max-width: 650px) {
  .javascript-home-page { padding-block: 32px 40px; }
  .javascript-home h1 { font-size: 31px; }
  .javascript-home h2 { font-size: 24px; }
  .javascript-home .intro-copy { font-size: 17px; }
  .javascript-home .primary-actions { gap: 12px; }
  .javascript-home .quiet-link { width: 100%; margin-left: 0; }
  .javascript-home .hero-figure { margin-top: 28px !important; }
  .javascript-home .hero-figure figcaption { text-align: left; }
  .javascript-home .chapter { margin-top: 44px; }
  .javascript-home .section-heading { margin-bottom: 22px; }
  .javascript-home .section-heading p { font-size: 15px; }
  .javascript-home .view-grid, .javascript-home .story-grid, .javascript-home .start-grid, .javascript-home .edition-grid { grid-template-columns: minmax(0,1fr); }
  .javascript-home .view-title-row { flex-direction: row; align-items: baseline; }
  .javascript-home .view-copy { padding: 20px; }
  .javascript-home .view-title-row h3 { font-size: 19px; }
  .javascript-home .story-grid, .javascript-home .start-grid { gap: 28px; }
  .javascript-home .edition { padding: 24px; }
  .javascript-home .builder-section, .javascript-home .application-section { padding-top: 30px; }
  .javascript-home .builder-figure { margin-bottom: 26px !important; }
}
@media(max-width: 360px) {
  .javascript-home h1 { font-size: 29px; }
  .javascript-home .view-title-row { flex-direction: column; gap: 8px; }
  .javascript-home .view-copy { padding: 17px; }
}
