.journey-page {
  --journey-ink: #192d28;
  --journey-muted: #4f6257;
  --journey-lime: #d6ef91;
  --journey-paper: #f5f3e9;
  --journey-line: #d0dacd;
  background: var(--journey-paper);
  color: var(--journey-ink);
}

.journey-page .journey {
  width: min(calc(100% - 2rem), 49rem);
  padding-block: 1.25rem 4rem;
  font-size: 1rem;
  line-height: 1.55;
}
.journey > .journey-companion {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.journey-companion strong { font-size: .875rem; }
.journey .journey-companion p { margin: 0; color: var(--journey-muted); font-size: .9375rem; }
.companion {
  flex: none;
  width: 2.85rem;
  aspect-ratio: 1;
  position: relative;
  background: var(--journey-lime);
  border: 2px solid var(--journey-ink);
  border-radius: 36% 38% 40% 20%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px var(--journey-ink);
}
.companion::before, .companion::after {
  content: "";
  position: absolute;
  width: .23rem;
  height: .44rem;
  top: 36%;
  left: 29%;
  border-radius: 1rem;
  background: var(--journey-ink);
}
.companion::after { left: 62%; }
.companion i {
  position: absolute;
  inset: 51% 36% 28%;
  border-bottom: 2px solid var(--journey-ink);
  border-radius: 50%;
}
.companion b {
  position: absolute;
  right: -.2rem;
  top: -.35rem;
  width: .68rem;
  height: .68rem;
  border: 2px solid var(--journey-ink);
  transform: rotate(45deg);
  background: var(--journey-paper);
}

.route-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .375rem;
  margin: 0;
  padding: .375rem;
  list-style: none;
  background: #e9ece1;
  border-radius: .875rem;
}
.route-map li {
  display: grid;
  grid-template-columns: 1.55rem 1fr;
  align-content: center;
  align-items: center;
  gap: .125rem .45rem;
  min-width: 0;
  padding: .55rem .6rem;
  border-radius: .55rem;
  color: var(--journey-muted);
  font-size: .875rem;
  line-height: 1.25;
}
.route-map li span {
  display: grid;
  place-items: center;
  width: 1.5rem;
  aspect-ratio: 1;
  border: 1px solid #bac9b8;
  border-radius: 50%;
  font-size: .8125rem;
}
.route-map small { grid-column: 2; font-size: .8125rem; font-weight: 400; }
.route-map [data-state="current"] { background: var(--journey-ink); color: white; font-weight: 600; }
.route-map [data-state="done"] span { background: var(--journey-lime); border-color: transparent; }
.journey .journey-progress {
  margin: .65rem .25rem 1rem;
  color: var(--journey-muted);
  font-size: .875rem;
  font-variant-numeric: tabular-nums;
}

.journey .question-area {
  padding: clamp(1.2rem, 4vw, 2.5rem);
  background: #fffefa;
  border: 1px solid var(--journey-line);
  border-radius: 1.15rem;
  box-shadow: 0 6px 24px #192d280a;
  overflow-wrap: anywhere;
}
.journey .question {
  max-width: 34ch;
  margin: 0 0 .75rem;
  font: 400 clamp(1.85rem, 1.45rem + 1.5vw, 2.65rem)/1.12 var(--display);
  letter-spacing: -.03em;
}
.journey [data-view="intro"] .question { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.journey .hint {
  max-width: 65ch;
  margin: 0 0 1rem !important;
  color: var(--journey-muted);
  font-size: 1rem;
}
.journey .choices {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin-top: 1.15rem;
}
.journey .choice {
  min-height: 3.4rem;
  gap: .7rem;
  padding: .75rem .85rem;
  background: #fff;
  border: 1px solid var(--journey-line);
  border-radius: .65rem;
  font-size: 1rem;
  line-height: 1.4;
}
.journey .choice:hover { border-color: #718b65; }
.journey .choice:has(input:checked) {
  background: #edf5df;
  border-color: #476044;
  box-shadow: inset 0 0 0 1px #476044;
}
.journey .choice:focus-within { outline: 2px solid #517047; outline-offset: 2px; }
.journey .field { gap: .4rem; margin-block: 1rem; }
.journey .field label, .journey .field-label { font-size: .9375rem; font-weight: 600; }
.journey .field input:not([type="checkbox"]), .journey .field textarea {
  width: 100%;
  padding: .75rem .85rem;
  background: white;
  border: 1px solid #afbead;
  border-radius: .6rem;
  font: inherit;
}
.journey .field textarea { min-height: 5rem; }
.journey .other-answer { border-left: 3px solid #8fae5b; padding-left: .85rem; }
.journey .other-answer[hidden] { display: none; }
.journey .answer-count { justify-self: end; color: var(--journey-muted); font-size: .8125rem; }
.journey .answer-suggestions { display: flex; flex-wrap: wrap; gap: .45rem; }
.journey .answer-example {
  margin-block: 1rem;
  color: var(--journey-muted);
  font-size: .875rem;
}
.journey .answer-example summary { cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.journey .answer-example p { margin-top: .5rem; }
.journey .actions { gap: .5rem 1.2rem; margin-top: 1.5rem; }
.journey .button, .journey .text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  font-size: .9375rem;
  line-height: 1.35;
}
.journey .button {
  padding: .75rem 1.15rem;
  background: var(--journey-ink);
  color: #fff;
  border: 1px solid transparent;
  border-radius: .55rem;
  text-align: center;
}
.journey .button:hover { background: #30483b; }
.journey button:disabled { opacity: .6; cursor: wait; }
.journey .text-button { color: var(--journey-ink); text-underline-offset: .22em; }
.journey-page :focus-visible { outline: 2px solid #527448; outline-offset: 3px; }
.journey .question:focus { outline: none; }

.reward-preview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin-block: 1.25rem;
}
.reward-preview-card { padding: .85rem; background: #f0f4e8; border-radius: .6rem; }
.journey .reward-preview-card h2 { margin: 0; font: 600 1rem/1.3 var(--body); letter-spacing: 0; }
.journey .reward-preview-card p { margin: .35rem 0 0; font-size: .875rem; color: var(--journey-muted); }
.journey .journey-thanks { color: var(--journey-muted); font-size: .9375rem; }
.journey .chapter-label, .journey .eyebrow, .journey .identity-progress {
  margin: 0 0 .65rem;
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .06em;
}
.journey .unlock-card, .journey .identity-invite, .journey .journey-checkpoint {
  margin-block: 1rem;
  padding: 1rem;
  background: #edf4e3;
  border-radius: .65rem;
}
.journey .identity-invite h2 { margin: 0; font: 600 1rem/1.4 var(--body); letter-spacing: 0; }
.journey .unlock-card p, .journey .identity-invite p { margin: .25rem 0; }
.journey .journey-checkpoint p { margin: 0; }

.journey .journey-note { background: #e9eee1; border: 1px solid var(--journey-line); border-radius: .75rem; }
.journey .journey-note[data-ready="true"] { background: #edf4e3; }
.journey-note summary { padding: .8rem 1rem; font-size: .9375rem; }
.journey-note .tip-preview { color: var(--journey-muted); }
.note-content { padding: 0 1rem 1rem; font-size: .9375rem; overflow-wrap: anywhere; }
.journey .note-content h2 { margin: .75rem 0 .25rem; font: 600 1rem/1.4 var(--body); letter-spacing: 0; }
.journey .note-content p { padding: 0; margin: 0; }
.note-content dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .25rem .75rem; }
.note-content dl[hidden] { display: none; }
.note-content dd { margin: 0; }
.journey-meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: .75rem; }
.journey .journey-meta p { margin: 0 !important; color: var(--journey-muted); font-size: .875rem; }
.journey .save-state:empty, .journey .error:empty { display: none; }
.journey .error { padding: .8rem; border: 1px solid #d8b5a8; background: #fff6ee; border-radius: .5rem; }

.assessment-result, .result-area, .next-experiment { padding: clamp(1rem, 3vw, 1.5rem); border-radius: .75rem; }
.assessment-result { margin-block: 1.25rem; background: var(--journey-ink); color: #fff; }
.assessment-result .eyebrow { color: var(--journey-lime); }
.journey .assessment-result h2 { margin: .5rem 0; font: 400 clamp(1.65rem, 4vw, 2.35rem)/1.12 var(--display); }
.journey .assessment-note { color: #e1e8dc; font-size: .875rem; }
.result-areas { display: grid; gap: .65rem; }
.result-area { border: 1px solid var(--journey-line); }
.journey .result-area h2, .journey .next-experiment h2 { margin: .55rem 0 0; font: 400 1.5rem/1.2 var(--display); }
.journey .result-area p, .journey .next-experiment p { margin: .45rem 0 0; }
.result-status { padding: .2rem .4rem; background: #edf4e3; border-radius: .25rem; font-size: .8125rem; }
.to-explore .result-status { background: #f7ebd8; color: #674921; }
.result-area details { margin-top: .7rem; font-size: .875rem; }
.result-area summary { cursor: pointer; }
.next-experiment { margin-block: 1rem; background: #edf4e3; }
.personal-evidence { border-top: 1px solid var(--journey-line); padding-top: .55rem; }
.gift-list { padding-left: 1.2rem; }
.gift-list li { margin-block: .6rem; }
.journey-page .home-nav {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--journey-paper);
}
#exit-journey { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 40rem) {
  .route-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey .choices, .reward-preview { grid-template-columns: 1fr; }
  .journey .actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .journey-page .question-area, .journey-page .live-note { animation: none; }
}
@media print {
  .journey-page, .journey .assessment-result { background: white; color: black; }
  .journey-page .nav, .journey-companion, .route-map, .journey-progress, .journey-note,
  .journey-meta, .journey .actions, .journey .error { display: none; }
  .journey-page .journey { width: auto; padding: 0; }
  .journey .question-area { border: 0; padding: 0; box-shadow: none; }
  .journey .assessment-result { border: 1px solid #999; }
  .journey .assessment-result .eyebrow, .journey .assessment-note { color: black; }
  .result-area, .next-experiment { break-inside: avoid; }
}
