.visual-review {
  background: var(--color-basalt);
}

.visual-review__hero-grid,
.visual-review__principles-grid,
.visual-review__contrast-panel,
.visual-review__rhythm-grid,
.visual-review__feedback-grid,
.visual-review__limits-grid,
.visual-review__limits-cards,
.visual-review__routes-grid,
.visual-review__route-cards,
.visual-review__final-grid {
  min-width: 0;
}

.visual-review__hero-grid {
  display: grid;
  grid-template-columns: minmax(360px, 4fr) minmax(0, 1fr) minmax(540px, 7fr);
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__hero-rail {
  grid-column: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.visual-review__hero-rail > * { margin: 0; }
.visual-review__hero-rail h1 { max-width: 430px; }
.visual-review__hero-lead { max-width: 430px; font-size: var(--font-size-body-large); line-height: 1.6; }

.visual-review__hero-score {
  max-width: 430px;
  gap: var(--space-2);
}

.visual-review__hero-score p { margin: 0; color: var(--color-muted); }

.visual-review__hero-action {
  display: flex;
  width: 100%;
  max-width: 430px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}

.visual-review__hero-action > * { margin: 0; }

.visual-review__play-button svg { width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; }

.visual-review__hero-evidence {
  grid-column: 3;
  width: 100%;
  min-width: 0;
  margin: var(--space-7) 0 0;
}

.visual-review__hero-evidence figcaption,
.visual-review__contrast-figure figcaption,
.visual-review__rhythm-figure figcaption {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.visual-review__image-trigger {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: var(--border-default);
  border-radius: 0;
  background: var(--color-graphite);
}

.visual-review__image-trigger img { width: 100%; }
.visual-review__hero-evidence img { aspect-ratio: 16 / 10; object-fit: cover; }

.visual-review__section-header { max-width: 720px; }
.visual-review__section-header > :last-child { margin-bottom: 0; }

.visual-review__principles-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(220px, 3fr) minmax(0, 4fr);
  gap: var(--grid-gap);
  align-items: end;
}

.visual-review__principle {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  margin: 0;
}

.visual-review__principle > * { margin: 0; }
.visual-review__principle::before { content: ""; width: 100%; height: 2px; margin: calc(var(--panel-padding) * -1) calc(var(--panel-padding) * -1) 0; background: var(--color-cyan); }
.visual-review__principle--composition::before { background: var(--color-magenta); }
.visual-review__principle--grid h3 { font-size: clamp(1.55rem, 2.4vw, 2.1rem); }

.visual-review__contrast-panel {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(280px, 1fr) minmax(0, 3fr);
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__contrast-figure { grid-column: 1; width: 100%; min-width: 0; margin: 0; }
.visual-review__contrast-figure img { aspect-ratio: 4 / 3; object-fit: cover; }

.visual-review__contrast-rail {
  grid-column: 3;
  display: flex;
  min-width: 0;
  max-width: 420px;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.visual-review__contrast-rail > * { margin: 0; }
.visual-review__contrast-rail blockquote { width: 100%; }
.visual-review__critical-note { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); }
.visual-review__critical-note > * { margin: 0; }

.visual-review__rhythm-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__rhythm-intro { grid-column: 1 / span 5; max-width: 520px; min-width: 0; }
.visual-review__rhythm-figure { grid-column: 4 / span 9; width: 100%; min-width: 0; margin: var(--space-7) 0 0; }
.visual-review__rhythm-figure img { aspect-ratio: 3 / 2; object-fit: contain; background: var(--color-basalt); }
.visual-review__rhythm-copy { grid-column: 5 / span 7; min-width: 0; max-width: 640px; }
.visual-review__closure { grid-column: 1 / span 4; min-width: 0; margin: 0; }
.visual-review__closure > :last-child { margin-bottom: 0; }

.visual-review__feedback-intro {
  width: 66.666%;
  max-width: 720px;
  margin: 0 0 var(--grid-gap);
  border-top: 2px solid var(--color-cyan);
}

.visual-review__feedback-intro > :last-child { margin-bottom: 0; }

.visual-review__feedback-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--grid-gap);
}

.visual-review__feedback-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  margin: 0;
  border-top: 2px solid var(--color-cyan);
}

.visual-review__feedback-card > * { margin: 0; }
.visual-review__feedback-card--verdict { border-top-color: var(--color-magenta); }

.visual-review__limits-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 7fr);
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__limits-manifest { grid-column: 1; max-width: 410px; min-width: 0; }
.visual-review__limits-cards { grid-column: 3; display: grid; grid-template-columns: repeat(2, minmax(250px, 1fr)); gap: var(--grid-gap); min-width: 0; }

.visual-review__limit-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  margin: 0;
  border-left: 2px solid var(--color-magenta);
}

.visual-review__limit-card > * { margin: 0; }
.visual-review__limit-card--wide { grid-column: 1 / span 1; }
.visual-review__limit-number { color: var(--color-magenta); font-family: var(--font-heading); font-size: 1.5rem; font-weight: var(--font-weight-display); line-height: 1; }

.visual-review__text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--color-paper);
  font-weight: var(--font-weight-semibold);
  text-decoration-color: var(--color-cyan);
  text-decoration-thickness: 2px;
}

.visual-review__routes-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__routes-intro { max-width: 400px; min-width: 0; }
.visual-review__route-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); min-width: 0; }

.visual-review__route-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  color: var(--color-paper);
  text-decoration: none;
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.visual-review__route-card > * { margin: 0; }
.visual-review__route-card p { color: var(--color-muted); }
.visual-review__route-card--gallery { border-left: 2px solid var(--color-magenta); }
.visual-review__route-card--features,
.visual-review__route-card--strategies { border-left: 2px solid var(--color-cyan); }
.visual-review__route-card:hover { color: var(--color-paper); transform: translate(2px, -2px); }

.visual-review__final-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(280px, 4fr);
  gap: var(--grid-gap);
  align-items: start;
}

.visual-review__final-copy { grid-column: 1; max-width: 560px; min-width: 0; }
.visual-review__download-panel { grid-column: 3; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); border-color: var(--color-cyan); }
.visual-review__download-panel > * { margin: 0; }
.visual-review__download-panel .button { width: 100%; }

.visual-review__lightbox {
  width: min(92vw, 1000px);
  max-height: 92vh;
  padding: 0;
  border: var(--border-default);
  border-radius: 0;
  background: var(--color-graphite);
  color: var(--color-paper);
}

.visual-review__lightbox::backdrop { background: rgba(9, 9, 11, 0.88); }
.visual-review__lightbox-inner { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding: var(--space-5); }
.visual-review__lightbox-inner img { width: 100%; max-height: 72vh; object-fit: contain; }
.visual-review__lightbox-inner p { margin: 0; color: var(--color-muted); }
.visual-review__lightbox-close { align-self: flex-end; width: 2.75rem; min-height: 2.75rem; border: var(--border-default); border-radius: 0; background: var(--color-basalt); color: var(--color-paper); font-size: 1.75rem; line-height: 1; }

@media (max-width: 75rem) {
  .visual-review__hero-grid { grid-template-columns: minmax(360px, 4fr) minmax(0, 1fr) minmax(500px, 7fr); }
  .visual-review__principles-grid { gap: var(--space-5); }
}

@media (max-width: 56.25rem) {
  .visual-review__hero-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .visual-review__hero-rail { grid-column: 1 / span 3; }
  .visual-review__hero-evidence { grid-column: 4 / span 5; margin-top: var(--space-6); }
  .visual-review__hero-lead,
  .visual-review__hero-score,
  .visual-review__hero-action { max-width: none; }

  .visual-review__principles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visual-review__principle--grid { grid-column: 1 / span 2; }
  .visual-review__principle--contrast,
  .visual-review__principle--composition { grid-column: auto; }

  .visual-review__contrast-panel { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .visual-review__contrast-figure { grid-column: 1 / span 5; }
  .visual-review__contrast-rail { grid-column: 6 / span 3; }

  .visual-review__rhythm-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .visual-review__rhythm-intro { grid-column: 1 / span 3; }
  .visual-review__rhythm-figure { grid-column: 4 / span 5; margin-top: var(--space-6); }
  .visual-review__rhythm-copy { grid-column: 3 / span 6; }
  .visual-review__closure { grid-column: 1 / span 3; }

  .visual-review__feedback-intro { width: 100%; }
  .visual-review__feedback-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .visual-review__limits-grid { grid-template-columns: 1fr; }
  .visual-review__limits-manifest,
  .visual-review__limits-cards { grid-column: 1; max-width: none; }
  .visual-review__limits-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .visual-review__routes-grid { grid-template-columns: 1fr; }
  .visual-review__routes-intro { max-width: 520px; }
  .visual-review__route-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visual-review__route-card--strategies { grid-column: 1 / span 1; }

  .visual-review__final-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .visual-review__final-copy { grid-column: 1 / span 4; }
  .visual-review__download-panel { grid-column: 5 / span 4; }
}

@media (max-width: 40rem) {
  .visual-review__hero-grid,
  .visual-review__contrast-panel,
  .visual-review__rhythm-grid,
  .visual-review__final-grid { grid-template-columns: 1fr; gap: var(--space-4); }

  .visual-review__hero-rail,
  .visual-review__hero-evidence,
  .visual-review__contrast-figure,
  .visual-review__contrast-rail,
  .visual-review__rhythm-intro,
  .visual-review__rhythm-figure,
  .visual-review__rhythm-copy,
  .visual-review__closure,
  .visual-review__final-copy,
  .visual-review__download-panel { grid-column: 1; width: 100%; max-width: none; }

  .visual-review__hero-evidence,
  .visual-review__rhythm-figure { margin-top: 0; }
  .visual-review__hero-rail h1 { max-width: none; }
  .visual-review__hero-lead { font-size: 1.0625rem; }
  .visual-review__hero-action .button { width: 100%; }

  .visual-review__principles-grid,
  .visual-review__feedback-grid,
  .visual-review__limits-cards,
  .visual-review__route-cards { grid-template-columns: 1fr; gap: var(--space-4); }

  .visual-review__principle--grid,
  .visual-review__principle--contrast,
  .visual-review__principle--composition,
  .visual-review__limit-card--wide,
  .visual-review__route-card--strategies { grid-column: 1; }

  .visual-review__contrast-rail { max-width: none; }
  .visual-review__rhythm-copy { max-width: none; }
  .visual-review__feedback-intro { margin-bottom: var(--space-4); }
  .visual-review__limits-manifest { max-width: none; }
  .visual-review__route-cards { min-width: 0; }
  .visual-review__route-card { min-height: auto; }
  .visual-review__download-panel .button { min-height: 3rem; }
  .visual-review__lightbox-inner { padding: var(--space-4); }
}

@media (max-width: 26.25rem) {
  .visual-review__play-button { font-size: 0.875rem; }
}

@media (prefers-reduced-motion: reduce) {
  .visual-review__route-card:hover { transform: none; }
}

ul { list-style: none !important; }
.nav-toggle { flex-direction: column; }