/*
 * The guided walkthrough, shared by every page that has one.
 *
 * These rules were in bn_date-night.css, which only /date-coach loads. When
 * /generate-image gained a tour the choice was to duplicate them or move
 * them; duplicated CSS drifts exactly like the duplicated component did, so
 * they live here and both pages link this file.
 *
 * Still prefixed `dnt-` rather than `.tour-*`: those are declared is:global
 * on the chat page, and sharing them would make two features share one set of
 * rules, where changing one quietly changes the other.
 */

/* ── The walkthrough ────────────────────────────────────────────────────── */
/*
 * Prefixed `dnt-` rather than reusing the chat page's `.tour-*`, which are
 * declared `is:global` there and would then be two features sharing one set of
 * rules across two pages. Changing one would quietly change the other.
 */
.dnt-root {
  position: fixed;
  inset: 0;
  z-index: 9998;
  font-family: 'Heebo', sans-serif;
}

/* Catches the click that closes the tour. The ring above it is the only thing
   that must not be clickable, so the scrim is a plain full-screen layer. */
.dnt-scrim { position: absolute; inset: 0; }

/*
 * The cut-out.
 *
 * One element with an enormous spread shadow: the shadow paints everything
 * outside the box, so the box itself stays clear with no four-rectangle
 * arithmetic and nothing to drift out of alignment when it moves.
 */
.dnt-ring {
  position: fixed;
  border-radius: 10px;
  box-shadow: 0 0 0 4000px rgba(0, 0, 0, .74);
  outline: 2px solid #a855f7;
  pointer-events: none;
  transition: top .22s ease, left .22s ease, width .22s ease, height .22s ease;
}

.dnt-card {
  position: fixed;
  z-index: 1;
  width: min(300px, calc(100vw - 24px));
  padding: 14px 16px;
  border: 1px solid #7c3aed;
  border-radius: 12px;
  background: #1a1a2e;
  color: #fff;
  box-shadow: 0 8px 32px rgba(0, 0, 0, .5);
  box-sizing: border-box;
}

.dnt-title { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: #c4b5fd; }
.dnt-text { margin: 0 0 14px; font-size: 12.5px; line-height: 1.5; color: #ccc; }

.dnt-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dnt-dots { display: flex; gap: 5px; }
.dnt-dot { width: 7px; height: 7px; border-radius: 50%; background: #444; transition: background .2s; }
.dnt-dot.is-on { background: #7c3aed; }

.dnt-btns { display: flex; gap: 8px; }
.dnt-skip,
.dnt-next {
  border: 0;
  border-radius: 8px;
  padding: 6px 14px;
  font-family: 'Heebo', sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.dnt-skip { background: transparent; color: #888; }
.dnt-skip:hover { color: #fff; }
.dnt-next { background: #7c3aed; color: #fff; }
.dnt-next:hover { background: #6d28d9; }

@media (prefers-reduced-motion: reduce) {
  .dnt-ring { transition: none; }
