/* /tour: connected-stack demo tour (2026-10-26). Works without JS: every step stacks. */
.tour { max-width: 1120px; margin: 0 auto; padding: 7rem 1.25rem 3rem; }
.tour-head { max-width: 760px; margin: 0 auto 1.6rem; text-align: center; }
.tour-head h1 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); line-height: 1.15; margin: .5rem 0 .8rem; }
.tour-head p { color: var(--fg-muted); line-height: 1.6; }
.tour-frame { background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 1.4rem; }
.tour-step { padding: 0; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.6rem; align-items: center; }
.tour-step + .tour-step { margin-top: 2.4rem; }
.tour.js .tour-step + .tour-step { margin-top: 0; }
.tour.js .tour-step[hidden] { display: none; }
.tour-shot { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: #0b0b0d; display: flex; justify-content: center; }
.tour-shot img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain; }
.tour-copy h2 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); margin: .3rem 0 .7rem; line-height: 1.2; }
.tour-copy p { color: var(--fg-muted); line-height: 1.6; margin: 0 0 .8rem; overflow-wrap: anywhere; }
.tour-meta { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.tour-num { color: var(--fg-muted); }
.tour-app { color: var(--purple-500, #a855f7); font-weight: 700; }
.tour-copy .tour-why { color: var(--fg); border-left: 3px solid var(--purple-500, #a855f7); padding-left: .8rem; }
.tour-final { grid-template-columns: minmax(0, 1fr); max-width: 680px; margin-left: auto; margin-right: auto; text-align: center; padding: 1.5rem 0; }
.tour-final .tour-meta { justify-content: center; }
.tour-cta { display: flex; gap: 1rem; justify-content: center; align-items: center; flex-wrap: wrap; margin-top: 1rem !important; }
.tour-link { color: var(--purple-500, #a855f7); font-weight: 600; }
.tour-nav { display: none; }
.tour.js .tour-nav { display: flex; justify-content: space-between; align-items: center; gap: .8rem; margin-top: 1.4rem; border-top: 1px solid var(--border); padding-top: 1.1rem; }
.tour-btn { border: 1px solid var(--border); background: transparent; color: var(--fg); border-radius: 999px; padding: .55rem 1.1rem; font: inherit; font-size: .92rem; cursor: pointer; min-height: 44px; white-space: nowrap; }
.tour-btn:disabled { opacity: .35; cursor: default; }
.tour-next { background: var(--purple-500, #a855f7); border-color: transparent; color: #fff; font-weight: 600; }
.tour-btn:focus-visible, .tour-dot:focus-visible { outline: 2px solid var(--purple-500, #a855f7); outline-offset: 2px; }
.tour-dots { display: flex; gap: .2rem; flex-wrap: wrap; justify-content: center; }
.tour-dot { width: 28px; height: 28px; border: 0; background: transparent; cursor: pointer; padding: 0; position: relative; }
.tour-dot::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--border); }
.tour-dot[aria-selected="true"]::after { background: var(--purple-500, #a855f7); width: 14px; height: 14px; margin: -7px 0 0 -7px; }
.tour-hint { display: none; }
.tour.js .tour-hint { display: block; text-align: center; color: var(--fg-muted); font-size: .8rem; margin: .8rem 0 0; }
@media (max-width: 860px) {
  .tour-step { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .tour-shot img { max-height: 70vh; width: auto; max-width: 100%; }
}
@media (max-width: 640px) {
  .tour { padding: 6rem .9rem 2rem; }
  .tour-frame { padding: .9rem; }
  .tour.js .tour-nav { gap: .3rem; }
  .tour-btn { padding: .5rem .75rem; font-size: .86rem; }
  .tour-dots { flex-wrap: nowrap; gap: 0; }
  .tour-dot { width: 20px; height: 32px; }
  .tour-shot img { max-height: 62vh; }
}
