/**
 * The drop zone: the single large element the page wants the eye to land on, in
 * both of its two states (empty prompt, and photo loaded).
 */

.drop-zone {
  border: 2px dashed var(--color-border-strong);
  border-radius: 16px;
  background: var(--color-surface);
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--spacing-unit) * 4);
  transition: border-color 150ms ease, background-color 150ms ease;
}

.drop-zone--drag-active {
  border-color: var(--color-accent);
  border-style: solid;
  background: var(--color-accent-soft);
}

.drop-zone-prompt {
  text-align: center;
  cursor: pointer;
  max-width: 40ch;
}

.drop-zone-instruction {
  margin: 0 0 calc(var(--spacing-unit) * 1);
  font-size: 1.15rem;
  color: var(--color-text);
}

.drop-zone-subtext {
  margin: 0;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.photo-preview-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--spacing-unit) * 1.5);
}

.photo-preview-canvas {
  max-width: 100%;
  max-height: 60vh;
  width: auto;
  height: auto;
  border-radius: 8px;
  border: 1px solid var(--color-border);
}

.photo-received-line {
  margin: 0;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.start-over-button {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  padding: calc(var(--spacing-unit) * 1) calc(var(--spacing-unit) * 2);
  cursor: pointer;
}

.start-over-button:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

/* Once a photo is in, the drop zone shrinks to one quiet line (still a drop and paste
   target) so the count step's photo becomes the thing the eye lands on. */
.drop-zone--compact {
  min-height: 0;
  padding: calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 2);
  border-width: 1px;
}

.drop-zone--compact .photo-preview-container {
  flex-direction: row;
  justify-content: space-between;
}

/* The empty drop zone invites a click: it lifts slightly on hover and shows a focus ring. */
.drop-zone:not(.drop-zone--compact):hover {
  border-color: var(--color-slate);
  background: var(--color-field);
}

.drop-zone-prompt {
  border-radius: 12px;
  padding: calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);
}

.drop-zone-glyph {
  display: block;
  width: 72px;
  height: 54px;
  margin: 0 auto calc(var(--spacing-unit) * 2);
}

.drop-zone-glyph-back {
  fill: var(--color-sunken);
  stroke: var(--color-border-strong);
  stroke-width: 1.5;
}

.drop-zone-glyph-front {
  fill: var(--color-surface);
  stroke: var(--color-accent);
  stroke-width: 1.8;
}

.drop-zone-glyph-line {
  stroke: var(--color-accent-line);
  stroke-width: 2;
  stroke-linecap: round;
}

.drop-zone-glyph-box {
  fill: none;
  stroke: var(--color-accent);
  stroke-width: 1.5;
}

.drop-zone--drag-active .drop-zone-glyph {
  animation: drop-bob 1.2s ease-in-out infinite alternate;
}

.drop-zone--compact .photo-preview-container {
  gap: calc(var(--spacing-unit) * 2);
}
