/* Витрина работ: карточки проектов поверх раздела услуг. */

.works {
  position: fixed;
  inset: 0;
  z-index: 75;
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  padding: clamp(1rem, 3vw, 2.25rem);
  background: rgba(8, 8, 10, .94);
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.works.is-open { opacity: 1; visibility: visible; }

.works-head { display: flex; align-items: center; gap: var(--s3); }
.works-title { font-size: var(--t-lg); font-weight: 600; color: var(--text); }
.works-close {
  margin-inline-start: auto;
  width: var(--tap); height: var(--tap);
  border: 1px solid var(--line-2); border-radius: var(--r-pill);
  background: transparent; color: var(--text);
  font-size: 1rem; cursor: pointer;
}
.works-close:hover { border-color: var(--brand-line); color: #fff; }

.works-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: var(--gap-deck);
  align-content: start;
}

.work {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  padding: var(--pad-card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .03);
  animation: work-in .32s ease-out both;
  overflow: hidden;                      /* превью подрезается по скруглению */
}

/* Превью — снимок первого экрана работы. Растянуто на всю ширину карточки:
   отступы съедаются отрицательным margin, чтобы картинка шла от края до края. */
.work-shot {
  display: block;
  width: calc(100% + var(--pad-card) * 2);
  margin: calc(var(--pad-card) * -1) calc(var(--pad-card) * -1) var(--s1);
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: top center;
  border-block-end: 1px solid var(--line);
  background: rgba(255, 255, 255, .02);
}
.work:hover { border-color: var(--brand-line); background: rgba(249, 137, 19, .05); }

@keyframes work-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.work-kind {
  font-size: var(--t-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.work h4 { font-size: var(--t-lg); font-weight: 600; color: var(--text); }
.work p { font-size: var(--t-sm); line-height: 1.5; color: var(--dim); }

.work-open {
  margin-block-start: auto;
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  min-height: var(--tap);
  color: var(--brand);
  font-size: var(--t-sm);
  text-decoration: none;
}
.work-open svg { width: 1rem; height: 1rem; fill: currentColor; }
.work-open:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Фильтр по подразделам: на телефоне уезжает вбок, а не переносится в три ряда. */
.works-chips {
  display: flex;
  /* Шторка — flex-колонка, и без этого строка чипов схлопывается в 4 пикселя:
     содержимое переполняет её по горизонтали, а flex-shrink дожимает по высоте. */
  flex: 0 0 auto;
  gap: var(--s2);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  padding-block-end: var(--s1);
}
.works-chips::-webkit-scrollbar { display: none; }

.chip {
  flex: 0 0 auto;
  min-height: var(--tap);
  padding-inline: var(--s3);
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: transparent;
  color: var(--dim);
  font: inherit;
  font-size: var(--t-sm);
  cursor: pointer;
  white-space: nowrap;
}
.chip b { color: var(--text); font-weight: 600; }
.chip:hover { border-color: var(--brand-line); color: var(--text); }
.chip.is-on { border-color: var(--brand-line); background: rgba(249, 137, 19, .1); color: var(--text); }

/* Метки честности: демо, прототип, «готовится к релизу», и значок ИИ внутри. */
.work-tags { display: flex; flex-wrap: wrap; gap: var(--s2); }
.work-tags:empty { display: none; }
.work-tag {
  padding: .15rem var(--s2);
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  color: var(--muted);
  font-size: var(--t-xs);
}
.work-ai {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .15rem var(--s2);
  border: 1px solid var(--brand-line);
  border-radius: var(--r-pill);
  color: var(--brand);
  font-size: var(--t-xs);
}
.work-ai svg { width: .85rem; height: .85rem; fill: currentColor; }

/* Работа без открываемой страницы: ссылки нет, и обещать её нельзя. */
.work-onask {
  margin-block-start: auto;
  min-height: var(--tap);
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  font-size: var(--t-sm);
}

.works-more {
  grid-column: 1 / -1;
  justify-self: center;
  min-height: var(--tap);
  padding-inline: var(--s4);
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: var(--t-sm);
  cursor: pointer;
}
.works-more:hover { border-color: var(--brand-line); }

.works-wait { color: var(--muted); font-size: var(--t-sm); }

/* Пока открыта витрина, страница под ней не прокручивается. */
body.works-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .works { transition: none; }
  .work { animation: none; }
}

/* Карточка работы внутри ответа ассистента: панель узкая, поэтому картинка ниже,
   а сама карточка занимает всю ширину пузыря. Вёрстка та же, что в витрине. */
.ai-msg .work {
  margin-block-start: var(--s2);
  background: rgba(255, 255, 255, .04);
}
.ai-msg .work-shot { aspect-ratio: 16 / 9; }
.ai-msg .work h4 { font-size: var(--t-md, 1rem); }

/* Кейсы: витрина как раздел страницы, а не шторка. Сетка та же, что в шторке,
   поэтому здесь только рамка раздела — прокрутка и отступы у deck свои. */
.deck.as-cases {
  display: block;
  align-content: start;
  max-width: min(72rem, 94vw);
}
.deck.as-cases .works-chips { margin-block-end: var(--s4); }
.deck.as-cases .works-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: var(--gap-deck);
  align-content: start;
}
