.ar-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: flex;
  flex-direction: column;
}

.ar-overlay > * {
  pointer-events: auto;
}

.ar-cinematic {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--app-spacing-xl);
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.55) 100%);
  animation: app-fade-in var(--app-transition-base);
}

.ar-cinematic--leave { animation: app-fade-out var(--app-transition-base); }

.ar-cinematic__frame {
  display: flex;
  align-items: flex-end;
  gap: var(--app-spacing-md);
  max-width: 360px;
  width: 100%;
}

.ar-cinematic__avatar {
  width: 80px;
  height: 80px;
  flex: 0 0 auto;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, var(--app-color-primary) 0%, var(--app-color-primary-dark) 100%);
  border: 4px solid var(--app-color-text-inverse);
  box-shadow: var(--app-shadow-md);
  position: relative;
  animation: ar-float 3s ease-in-out infinite;
}

.ar-cinematic__avatar::before,
.ar-cinematic__avatar::after {
  content: '';
  position: absolute;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--app-color-text-inverse);
  top: 26px;
}
.ar-cinematic__avatar::before { left: 16px; }
.ar-cinematic__avatar::after  { right: 16px; }

@keyframes ar-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.ar-cinematic__bubble {
  background: var(--app-color-surface);
  color: var(--app-color-text);
  padding: var(--app-spacing-md) var(--app-spacing-lg);
  border-radius: var(--app-radius-lg);
  position: relative;
  box-shadow: var(--app-shadow-lg);
  animation: app-slide-up var(--app-transition-base);
  flex: 1 1 auto;
  min-width: 0;
}

.ar-cinematic__title {
  margin: 0 0 var(--app-spacing-xs) 0;
  font-size: var(--app-font-size-base);
  font-weight: 700;
  color: var(--app-color-primary);
}

.ar-cinematic__text {
  margin: 0;
  font-size: var(--app-font-size-sm);
  line-height: var(--app-line-height-relaxed);
}

.ar-marker-scan {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--app-spacing-lg);
  padding: var(--app-spacing-xl);
}

.ar-marker-scan__viewfinder {
  position: relative;
  width: min(70vw, 260px);
  aspect-ratio: 1 / 1;
  border-radius: var(--app-radius-md);
}

.ar-marker-scan__corner {
  position: absolute;
  width: 36px;
  height: 36px;
  border: 4px solid var(--app-color-primary);
  border-radius: 4px;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.4));
}

.ar-marker-scan__corner--tl { top: 0; left: 0; border-right: none; border-bottom: none; }
.ar-marker-scan__corner--tr { top: 0; right: 0; border-left: none; border-bottom: none; }
.ar-marker-scan__corner--bl { bottom: 0; left: 0; border-right: none; border-top: none; }
.ar-marker-scan__corner--br { bottom: 0; right: 0; border-left: none; border-top: none; }

.ar-marker-scan__validate {
  background: var(--app-color-primary);
  color: var(--app-color-text-inverse);
  border-radius: var(--app-radius-md);
  font-weight: 700;
  font-size: var(--app-font-size-base);
  padding: var(--app-spacing-md) var(--app-spacing-lg);
  min-height: var(--app-touch-target);
  box-shadow: var(--app-shadow-md);
}
.ar-marker-scan__validate:active { background: var(--app-color-primary-dark); }
