.vibe-project-dialog {
  box-sizing: border-box;
  width: min(1500px, calc(100vw - 72px));
  height: min(920px, calc(100dvh - 72px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: #111;
  box-shadow: 0 24px 80px rgb(0 0 0 / 30%);
}

.vibe-project-dialog::backdrop {
  background: rgb(17 17 17 / 58%);
  backdrop-filter: blur(2px);
}

.vibe-project-dialog-bar {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 48px;
  padding: 0 18px 0 24px;
  background: #fff;
}

.vibe-project-dialog-close {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}

.vibe-project-dialog-close:hover { background: #f1f1f1; }
.vibe-project-dialog-close:focus { outline: none; box-shadow: none; }
.vibe-project-dialog-close:focus-visible { outline: 2px solid #777; outline-offset: 2px; }
.vibe-project-dialog-close img { width: 100%; height: 100%; }

.vibe-project-dialog-scroll {
  display: grid;
  grid-template-columns: minmax(300px, 34%) minmax(0, 1fr);
  gap: clamp(34px, 4vw, 68px);
  align-items: start;
  align-content: start;
  height: calc(100% - 48px);
  padding: 12px clamp(28px, 4vw, 64px) 36px;
  outline: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.vibe-project-dialog-status {
  grid-column: 1 / -1;
  align-self: center;
  justify-self: center;
  color: #6e6b70;
  font: 700 14px/1.5 'Lato', Arial, sans-serif;
}

.vibe-project-dialog-intro {
  position: sticky;
  top: 0;
  min-width: 0;
}

.vibe-project-dialog-eyebrow {
  margin: 0 0 17px;
  color: #6e6b70;
  font: 700 10px/1.5 'Lato', Arial, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vibe-project-dialog-intro h2 {
  margin: 0 0 20px;
  font: 900 clamp(30px, 3.2vw, 48px)/1.05 'Muli', Arial, sans-serif;
  letter-spacing: -.035em;
}

.vibe-project-dialog-lead {
  margin: 0 0 28px;
  color: #29272b;
  font: 600 clamp(17px, 1.5vw, 21px)/1.5 'Lato', Arial, sans-serif;
}

.vibe-project-dialog-intro > p:not(.vibe-project-dialog-eyebrow):not(.vibe-project-dialog-lead):not(.vibe-project-dialog-note) {
  margin: 0 0 24px;
  color: #5e5b61;
  font: 400 15px/1.7 'Lato', Arial, sans-serif;
}

.vibe-project-dialog-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 0 0 28px;
  padding: 18px 0;
  border-top: 1px solid #e4e4e4;
  border-bottom: 1px solid #e4e4e4;
}

.vibe-project-dialog-meta dt {
  margin-bottom: 5px;
  color: #858187;
  font: 700 9px/1.4 'Lato', Arial, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vibe-project-dialog-meta dd {
  margin: 0;
  color: #29272b;
  font: 700 13px/1.45 'Lato', Arial, sans-serif;
}

.vibe-project-dialog-note {
  margin: -8px 0 24px;
  color: #858187;
  font: 400 12px/1.6 'Lato', Arial, sans-serif;
}

.vibe-project-dialog-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 11px 16px;
  background: #111;
  color: #fff;
  font: 700 13px/1.4 'Lato', Arial, sans-serif;
  text-decoration: none;
}

.vibe-project-dialog-link:hover,
.vibe-project-dialog-link:focus-visible { background: #37313f; }
.vibe-project-dialog-link:focus-visible { outline: 2px solid #7351bd; outline-offset: 3px; }

.vibe-project-dialog-media {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid #e4e4e4;
  background: #f4f4f4;
}

.vibe-project-dialog-media img,
.vibe-project-dialog-media video {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  background: #f4f4f4;
}

.vibe-project-dialog-media-video video {
  aspect-ratio: 16 / 9;
  background: #111;
}

.vibe-project-dialog-media figcaption {
  padding: 14px 16px;
  border-top: 1px solid #e4e4e4;
  background: #fff;
  color: #777378;
  font: 600 11px/1.5 'Lato', Arial, sans-serif;
}

body.vibe-project-dialog-open { overflow: hidden; }

@media (max-width: 820px) {
  .vibe-project-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .vibe-project-dialog-scroll { grid-template-columns: 1fr; gap: 24px; padding: 8px 24px 32px; }
  .vibe-project-dialog-intro { position: static; }
  .vibe-project-dialog-intro h2 { font-size: 32px; }
  .vibe-project-dialog-media { grid-row: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .vibe-project-dialog-scroll { scroll-behavior: auto; }
}
