/* ============================================================
   PuraUse — Interactive wipe quiz
   ============================================================ */

.quiz {
  max-width: 780px;
  margin-inline: auto;
  position: relative;
}

/* ---- Stage machinery ---- */
.quiz__stage { position: relative; }
.quiz__panel { display: none; }
.quiz__panel.is-active { display: block; animation: quizIn 460ms var(--e-soft) both; }

@keyframes quizIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .quiz__panel.is-active { animation: none; }
}

/* ---- Intro ---- */
.quiz__intro { text-align: center; }
.quiz__intro h2 { font-size: var(--fs-h1); margin-bottom: 1.125rem; }
.quiz__intro .lead { margin: 0 auto 2rem; max-width: 34ch; color: var(--ink-70); }
.quiz__time {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--teal);
  margin-bottom: 1.5rem;
}
.quiz__time svg { width: 15px; height: 15px; }

/* ---- Progress ---- */
.quiz__progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}
.quiz__dots { display: flex; gap: 0.4375rem; }
.quiz__dot {
  width: 30px; height: 3px;
  border-radius: 2px;
  background: rgba(32,48,43,.16);
  transition: background var(--t-base) var(--e-out);
}
.quiz__dot.is-done { background: var(--teal); }
.quiz__dot.is-now  { background: var(--ink); }
.quiz__count { font-size: var(--fs-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-55); font-weight: 700; }

/* ---- Question ---- */
.quiz__q {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.625rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
  max-width: 20ch;
}

.quiz__options { display: grid; gap: 0.75rem; }

.quiz__opt {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  text-align: left;
  min-height: 68px;
  padding: 1rem 1.25rem;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  background: rgba(251,250,247,.72);
  font-size: var(--fs-body);
  color: var(--ink);
  transition: background var(--t-base) var(--e-out),
              border-color var(--t-base) var(--e-out),
              transform var(--t-fast) var(--e-out);
}
.quiz__opt:hover { background: var(--paper); border-color: var(--line-strong); }
.quiz__opt:active { transform: scale(.988); }
.quiz__opt[aria-pressed="true"] {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.quiz__opt-key {
  flex: none;
  width: 34px; height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(32,48,43,.07);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: background var(--t-base) var(--e-out), color var(--t-base) var(--e-out);
}
.quiz__opt[aria-pressed="true"] .quiz__opt-key { background: rgba(251,250,247,.2); color: var(--paper); }

.quiz__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  margin-top: clamp(1.5rem, 3vw, 2rem);
}
.quiz__back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  font-size: var(--fs-sm);
  color: var(--ink-55);
  transition: color var(--t-base) var(--e-out);
}
.quiz__back:hover { color: var(--ink); }
.quiz__back svg { width: 15px; height: 15px; }
.quiz__back[hidden] { visibility: hidden; display: inline-flex !important; pointer-events: none; }
.quiz__hint { font-size: var(--fs-xs); color: var(--ink-40); }
@media (max-width: 620px) { .quiz__hint { display: none; } }

/* ---- Result ---- */
.quiz__result-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.quiz__result-art {
  border-radius: var(--r-lg);
  padding: clamp(1.25rem, 3vw, 2.25rem);
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3.4;
}
.quiz__result-art .pack { filter: drop-shadow(0 18px 32px rgba(32,48,43,.16)); }
.quiz__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fs-label);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--teal);
  margin-bottom: 0.875rem;
  white-space: nowrap;
}
.quiz__badge svg { width: 16px; height: 16px; flex: none; }
.quiz__archetype {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.5vw, 3.125rem);
  line-height: 1.05;
  letter-spacing: -0.022em;
  margin-bottom: 1rem;
}
.quiz__blurb { color: var(--ink-70); font-size: var(--fs-body); line-height: 1.65; margin-bottom: 1.5rem; max-width: 40ch; }
.quiz__match {
  font-size: var(--fs-body);
  padding: 1rem 1.25rem;
  border-radius: var(--r-md);
  background: rgba(251,250,247,.75);
  margin-bottom: 1.5rem;
}
.quiz__match strong { font-weight: 700; }
.quiz__match span { display: block; color: var(--ink-55); font-size: var(--fs-sm); margin-top: 0.25rem; }
.quiz__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.quiz__restart {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  font-size: var(--fs-sm);
  color: var(--ink-55);
  transition: color var(--t-base) var(--e-out);
}
.quiz__restart:hover { color: var(--ink); }
.quiz__restart svg { width: 15px; height: 15px; }

@media (max-width: 720px) {
  .quiz__result-grid { grid-template-columns: 1fr; }
  .quiz__result-art { aspect-ratio: 16 / 10; max-width: 320px; }
}

/* ---- Result: traits, insight, mix, recap ---- */

.quiz__traits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem;
  margin-bottom: 1.25rem;
}
.quiz__trait {
  font-size: var(--fs-xs);
  padding: 0.4375rem 0.8125rem;
  border-radius: var(--r-pill);
  background: rgba(251, 250, 247, .8);
  color: var(--ink-80);
  border: 1px solid rgba(32, 48, 43, .1);
}

.quiz__insights {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: clamp(0.75rem, 2vw, 1.25rem);
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.quiz__panel-card {
  background: rgba(251, 250, 247, .78);
  border-radius: var(--r-lg);
  padding: clamp(1.25rem, 2.6vw, 1.75rem);
}
.quiz__panel-title {
  font-size: var(--fs-label);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-55);
  font-family: var(--font-body);
  margin-bottom: 0.875rem;
}
.quiz__insight { font-size: var(--fs-sm); line-height: 1.7; color: var(--ink-80); }

.quiz__moments-label {
  margin-top: 1.25rem;
  font-size: var(--fs-xs);
  color: var(--ink-55);
  font-weight: 700;
}
.quiz__moments { display: flex; flex-wrap: wrap; gap: 0.4375rem; margin-top: 0.5rem; }
.quiz__moments li {
  font-size: var(--fs-xs);
  padding: 0.375rem 0.75rem;
  border-radius: var(--r-pill);
  background: var(--aqua-wash);
  color: var(--aqua-text);
  font-weight: 700;
}

.quiz__mix { display: grid; gap: 0.625rem; }
.quiz__mix-row {
  display: grid;
  grid-template-columns: 5.5rem 1fr 2.25rem;
  align-items: center;
  gap: 0.625rem;
  font-size: var(--fs-xs);
}
.quiz__mix-name { color: var(--ink-80); }
.quiz__mix-track {
  height: 6px;
  border-radius: 3px;
  background: rgba(32, 48, 43, .1);
  overflow: hidden;
}
.quiz__mix-fill {
  display: block;
  height: 100%;
  border-radius: 3px;
  background: var(--teal);
  /* grows from nothing when the result appears */
  animation: mixGrow 760ms var(--e-soft) both;
}
@keyframes mixGrow { from { transform: scaleX(0); transform-origin: left; } }
.quiz__mix-pct { text-align: right; color: var(--ink-55); font-variant-numeric: tabular-nums; }
.quiz__mix-note { margin-top: 0.875rem; font-size: var(--fs-xs); color: var(--ink-40); line-height: 1.5; }

.quiz__recap {
  margin-top: clamp(1rem, 2vw, 1.5rem);
  border-top: 1px solid rgba(32, 48, 43, .12);
  padding-top: 1rem;
}
.quiz__recap summary {
  cursor: pointer;
  font-size: var(--fs-sm);
  color: var(--ink-70);
  min-height: 44px;
  display: flex;
  align-items: center;
  list-style: none;
  gap: 0.5rem;
  transition: color var(--t-base) var(--e-out);
}
.quiz__recap summary::-webkit-details-marker { display: none; }
.quiz__recap summary::before {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--t-base) var(--e-out);
}
.quiz__recap[open] summary::before { transform: rotate(-135deg); }
.quiz__recap summary:hover { color: var(--ink); }
.quiz__recap-list { margin-top: 0.75rem; }
.quiz__recap-row {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(32, 48, 43, .1);
  font-size: var(--fs-xs);
}
.quiz__recap-row:last-child { border-bottom: 0; }
.quiz__recap-row dt { color: var(--ink-55); }
.quiz__recap-row dd { margin: 0; color: var(--ink); font-weight: 700; }

@media (max-width: 720px) {
  .quiz__insights { grid-template-columns: 1fr; }
  .quiz__recap-row { grid-template-columns: 1fr; gap: 0.1875rem; }
  .quiz__mix-row { grid-template-columns: 4.75rem 1fr 2.25rem; }
}

/* ---- Capture (post-result, optional) ---- */
.quiz__capture {
  margin-top: clamp(2rem, 4vw, 2.75rem);
  padding-top: clamp(1.75rem, 3vw, 2.25rem);
  border-top: 1px solid rgba(32,48,43,.14);
}
.quiz__capture h3 { font-size: clamp(1.25rem, 2.4vw, 1.625rem); margin-bottom: 0.5rem; }
.quiz__capture p { font-size: var(--fs-sm); color: var(--ink-70); margin-bottom: 1.25rem; max-width: 46ch; }
.quiz__capture-row {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 0.75rem;
  align-items: start;
}
@media (max-width: 680px) {
  .quiz__capture-row { grid-template-columns: 1fr; }
  .quiz__capture-row .btn { width: 100%; }
}
.quiz__capture .check { margin-top: 1rem; }
