:root { --blue: #14345b; --gold: #c99a35; }
body { border-top: 4px solid var(--blue); margin-top: 0; padding-top: 32px; }
.course-masthead { display: flex; align-items: center; gap: 22px; padding-bottom: 24px; border-bottom: 1px solid #dbe1e8; }
.course-masthead img { display: block; min-width: 76px; }
.course-masthead strong { font-size: 23px; color: var(--blue); }
.course-masthead span { font-size: 15px; color: #586574; }
.showcase { text-align: center; margin: 28px 0 36px; }
.showcase-intro { font-size: clamp(23px, 3vw, 32px); color: var(--blue); font-weight: 600; margin: 22px 0; }
.demo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.demo-grid figure { margin: 0; min-width: 0; }
.demo { position: relative; display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 0; background: #fff; cursor: pointer; overflow: hidden; border-radius: 3px; }
.demo img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform 1.1s ease, opacity .8s ease; }
.demo:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
.dissolve .after { position: absolute; inset: 0; opacity: 0; }
.demo[aria-pressed="true"] .after { opacity: 1; }
.rotate[aria-pressed="true"] img { transform: rotate(180deg); }
.shrink[aria-pressed="true"] img { transform: scale(.25); }
@media (hover: hover) {
  .dissolve:hover .after { opacity: 1; }
  .rotate:hover img { transform: rotate(180deg); }
  .shrink:hover img { transform: scale(.25); }
}
.demo-grid figcaption { margin-top: 12px; font-size: 16px; line-height: 1.5; }
.demo-grid figcaption strong, .demo-grid figcaption span { display: block; }
.demo-grid figcaption strong { color: var(--blue); }
.demo-grid figcaption span, .example-credit, .showcase-help { color: #64717c; font-size: 14px; }
.showcase-help { margin-bottom: 4px; }
.example-credit { margin-top: 0; }
.sampling-preview { max-width: 640px; margin: 28px auto 0; }
.sampling-preview video { width: 100%; display: block; }
.sampling-preview figcaption { color: #64717c; font-size: 14px; margin-top: 8px; }
body > h1 { text-align: center; font-size: clamp(27px, 4vw, 38px); line-height: 1.25; }
nav { justify-content: center; padding: 16px 0; border-block: 1px solid #dbe1e8; }
nav a { text-underline-offset: 4px; }
section h2 { border-bottom: 1px solid #e3e7eb; padding-bottom: 8px; }
figure img { display: block; margin-inline: auto; }
figcaption { font-size: 15px; color: #586574; margin-top: 10px; }
.credits { border-top: 1px solid #dbe1e8; margin-top: 36px; padding-top: 24px; font-size: 15px; }
.credits figure { text-align: center; margin: 0 auto 28px; max-width: 420px; }
@media (max-width: 650px) {
  .demo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .course-masthead { gap: 14px; align-items: flex-start; }
  .course-masthead strong { font-size: 19px; }
  .course-masthead div { font-size: 14px; }
  body { padding-inline: 16px; }
  body > section > figure { margin-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .demo img { transition: none; }
}
