/* ===========================
   CAPTURE 촬영 화면
   =========================== */

.capture-screen {
  background: #ffffff;
}

/* 메인 레이아웃 */
.capture-main {
  padding: 5.15cqw 0;
  gap: 5.15cqw;
}

/* 헤더 */
.capture-header {
  padding: 0 5.15cqw;
}
.capture-back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15.45cqw;
  height: 8.58cqw;
  background: #222222;
  border-radius: 21.46cqw;
  border: none;
  cursor: pointer;
}
.capture-back-btn:active {
  transform: scale(0.95);
}
.capture-back-icon {
  width: 5.15cqw;
  height: 5.15cqw;
}
.capture-title {
  font-weight: 700;
  font-size: 5.15cqw;
  line-height: 6.87cqw;
  color: #222222;
  margin: 0;
}

/* 카메라 콘텐츠 영역 */
.capture-content {
  padding: 0 5.15cqw;
  gap: 5.15cqw;
}

/* 카메라 프레임 (센터링 컨테이너) */
.capture-frame {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 카메라 프레임 내부 (4:6 비율) */
.capture-frame-inner {
  height: 100%;
  aspect-ratio: 2 / 3;
  border: 1.72cqw solid #222222;
  border-radius: 4.29cqw;
  background: #222222;
  overflow: hidden;
  position: relative;
}

/* 비디오 */
.capture-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 촬영 플래시 */
.capture-flash {
  position: absolute;
  inset: 0;
  background: #ffffff;
  opacity: 0;
  pointer-events: none;
  z-index: 10;
}
.capture-flash.flash-active {
  animation: captureFlash 0.35s ease-out forwards;
}
@keyframes captureFlash {
  0%   { opacity: 0.95; }
  100% { opacity: 0; }
}

/* 카운트다운 오버레이 */
.capture-countdown-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.capture-countdown-text {
  font-size: 25.75cqw;
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 0.43cqw 2.15cqw rgba(0, 0, 0, 0.5);
}

/* 촬영 버튼 */
.capture-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 4.29cqw 6.87cqw;
  gap: 1.72cqw;
  background: #222222;
  border-radius: 21.46cqw;
  border: none;
  cursor: pointer;
  font-family: "Pretendard", sans-serif;
  font-weight: 700;
  font-size: 5.15cqw;
  line-height: 6.22cqw;
  color: #ffffff;
  text-align: center;
  transition: transform 0.2s;
  flex-shrink: 0;
}
.capture-btn:active {
  transform: scale(0.97);
}

/* 카메라 에러 */
.capture-error-wrap {
  padding: 5.15cqw;
}
.capture-error-icon {
  font-size: 12.88cqw;
  margin-bottom: 2.58cqw;
}
.capture-error-title {
  font-weight: 700;
  font-size: 5.15cqw;
  color: #222222;
  margin: 0 0 1.29cqw;
}
.capture-error-desc {
  font-weight: 500;
  font-size: 3.43cqw;
  color: #999999;
  margin: 0 0 5.15cqw;
}
.capture-error-actions {
  display: flex;
  gap: 2.58cqw;
}
.capture-error-btn {
  padding: 2.58cqw 5.15cqw;
  border-radius: 4.29cqw;
  border: none;
  cursor: pointer;
  font-family: "Pretendard", sans-serif;
  font-weight: 600;
  font-size: 3.43cqw;
  transition: transform 0.2s;
}
.capture-error-btn:active {
  transform: scale(0.95);
}
.capture-error-btn--retry {
  background: #222222;
  color: #ffffff;
}
.capture-error-btn--back {
  background: #f0f0f0;
  color: #222222;
}

/* 연속촬영 썸네일 스트립 */
.capture-thumbs {
  display: flex;
  justify-content: center;
  gap: 2.58cqw;
  flex-shrink: 0;
}
.capture-thumb {
  width: 15.45cqw;
  height: 15.45cqw;
  border-radius: 2.58cqw;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.capture-thumb--filled {
  border: 0.43cqw solid #222222;
}
.capture-thumb--empty {
  border: 0.43cqw dashed #cccccc;
  background: #f5f5f5;
}
.capture-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.capture-thumb-num {
  font-weight: 700;
  font-size: 3.43cqw;
  color: #cccccc;
}
