/* styles.css — Ruta Salud · disciplina Vercel aplicada a la identidad de marca */

/* ============ Reset / base ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-sans);
  font-size:15.5px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:"cv01","ss01";
  overflow-x:hidden;
}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-0.03em;line-height:1.1;color:var(--fg)}
p{margin:0}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font-family:inherit}
::selection{background:var(--teal-subtle);color:var(--teal-deep)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--fg);color:#fff;padding:12px 18px;border-radius:0 0 var(--r-md) 0;z-index:200}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:var(--r-sm)}

.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:clamp(64px,9vw,112px);scroll-margin-top:72px}

.eyebrow{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--teal);font-weight:500;display:inline-flex;align-items:center;gap:.55em;margin:0 0 var(--sp-4);
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:var(--r-full);background:var(--signal);display:inline-block}
.section-title{font-size:clamp(1.7rem,1.15rem + 1.9vw,2.45rem);letter-spacing:-0.035em}
.lead{font-size:clamp(1.05rem,1rem + 0.45vw,1.2rem);color:var(--fg-muted);line-height:1.55;max-width:42ch;font-weight:400}

/* ============ Buttons / chips ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-size:.92rem;font-weight:500;letter-spacing:-0.01em;
  padding:10px 16px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
  white-space:nowrap;
}
.btn--lg{padding:12px 22px;font-size:.98rem}
.btn--block{width:100%}
.btn .arr{transition:transform var(--dur) var(--ease)}
.btn:hover .arr{transform:translateX(2px)}
.btn--primary{background:var(--teal-deep);color:#fff;border-color:var(--teal-deep)}
.btn--primary:hover{background:#0a302c}
.btn--ghost{background:var(--bg);color:var(--fg);border-color:var(--border-strong)}
.btn--ghost:hover{background:var(--bg-hover);border-color:var(--fg-faint)}
.btn--amber{background:var(--signal);color:#3a2606;border-color:var(--signal)}
.btn--amber:hover{background:#cd7f1f}

.chip{
  display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.72rem;font-weight:500;
  color:var(--teal-strong);background:var(--teal-subtle);padding:4px 10px;border-radius:var(--r-sm);
  border:1px solid rgba(21,117,106,.16);letter-spacing:.01em;
}
.chip .dot{width:5px;height:5px;border-radius:50%;background:var(--teal)}

/* ============ Header ============ */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.8);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid transparent;transition:border-color .3s ease}
.site-header.is-stuck{border-color:var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:60px}
.brand{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:1.02rem;letter-spacing:-0.02em;color:var(--fg)}
.brand .mark{flex:none}
.mark-needle{transform-box:fill-box;transform-origin:center}
.nav{display:flex;align-items:center;gap:28px}
.nav a.navlink{font-size:.9rem;color:var(--fg-muted);font-weight:450;transition:color var(--dur) var(--ease)}
.nav a.navlink:hover{color:var(--fg)}
.header-cta{display:inline-flex;gap:10px;align-items:center}
@media (max-width:760px){ .nav{display:none} }

/* ============ Hero ============ */
.hero{position:relative;padding-top:clamp(48px,7vw,84px);padding-bottom:clamp(56px,7vw,96px);overflow:hidden}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(var(--border) 1px, transparent 1.4px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 75% 0%, #000, transparent 72%);
  mask-image:radial-gradient(ellipse 80% 70% at 75% 0%, #000, transparent 72%);
  opacity:.7;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:center;position:relative;z-index:2}
.hero-copy{max-width:38ch}
.hero h1{font-size:clamp(2.3rem,1.4rem + 3.8vw,3.9rem);font-weight:600;letter-spacing:-0.04em;line-height:1.04}
.hero h1 em{font-style:normal;color:var(--teal)}
.hero .lead{margin-top:var(--sp-5);max-width:44ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--sp-6)}
.hero-note{margin-top:var(--sp-5);font-size:.82rem;color:var(--fg-muted);max-width:42ch;display:flex;gap:8px;align-items:flex-start;line-height:1.45}
.hero-note svg{flex:none;margin-top:1px}

/* answer card (vista previa del producto) */
.answer-card{background:var(--bg);border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:1px solid var(--border);padding:var(--sp-5);position:relative;max-width:420px;margin-inline:auto}
.answer-card .ac-route{display:flex;align-items:center;gap:0;margin-bottom:var(--sp-5)}
.ac-node{width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--teal);flex:none}
.ac-node.is-end{background:var(--signal);border-color:var(--signal)}
.ac-seg{height:1.5px;flex:1;background:var(--border-strong)}
.ac-seg.is-last{background:linear-gradient(90deg,var(--teal),var(--signal))}
.ac-label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:var(--sp-2)}
.ac-q{font-size:1.08rem;font-weight:600;letter-spacing:-0.02em;color:var(--fg);line-height:1.3;margin-bottom:var(--sp-3)}
.ac-a{font-size:.9rem;color:var(--fg-secondary);line-height:1.55;margin-bottom:var(--sp-4)}
.ac-foot{display:flex;flex-direction:column;gap:var(--sp-3)}
.ac-next{display:flex;align-items:center;gap:10px;background:var(--signal-subtle);border:1px solid rgba(222,140,40,.22);border-radius:var(--r-md);padding:10px 12px}
.ac-next .pin{flex:none}
.ac-next .nx-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-fg);display:block;margin-bottom:2px}
.ac-next .nx-text{font-size:.86rem;font-weight:500;color:var(--fg);line-height:1.3}

/* ============ Problem ============ */
.problem{background:var(--bg-subtle);border-block:1px solid var(--border)}
.problem .container{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
.problem-terms{display:flex;flex-wrap:wrap;gap:8px;align-self:start}
.term{font-family:var(--font-mono);font-size:.78rem;color:var(--fg-muted);border:1px solid var(--border);background:var(--bg);padding:6px 11px;border-radius:var(--r-sm)}
.term.is-hot{color:var(--signal-fg);border-color:rgba(222,140,40,.3);background:var(--signal-subtle)}
.problem p.body{color:var(--fg-muted);margin-top:var(--sp-4);max-width:46ch}

/* ============ DEMO ============ */
.demo-head{max-width:56ch;margin-bottom:clamp(28px,4vw,44px)}
.demo-sub{color:var(--fg-muted);margin-top:var(--sp-4);max-width:54ch}
.demo-stage{max-width:740px;margin-inline:auto}
.demo-frame{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden}
.demo-bar{display:flex;align-items:center;gap:6px;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}
.demo-bar .demo-dot{width:9px;height:9px;border-radius:50%;background:var(--border-strong)}
.demo-bar .demo-dot:nth-child(2){background:#E4D2B0}
.demo-bar .demo-dot:nth-child(3){background:#BFD8D2}
.demo-bar-label{margin-left:8px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--fg-faint)}
.demo-progress{display:flex;align-items:center;gap:6px;padding:16px 22px 0}
.demo-progress .pstep{height:3px;border-radius:var(--r-full);flex:1;background:var(--border);transition:background .35s var(--ease)}
.demo-progress .pstep.is-done{background:var(--teal)}
.demo-progress .pstep.is-current{background:var(--signal)}
.demo-body{padding:clamp(20px,3vw,30px) clamp(18px,3vw,28px) clamp(22px,3vw,30px);min-height:296px;display:flex;flex-direction:column}
.demo-disclaimer{margin-top:var(--sp-4);text-align:center;font-size:.78rem;color:var(--fg-faint);max-width:60ch;margin-inline:auto;line-height:1.5}

.demo-step{animation:demoIn .4s var(--ease) both}
@keyframes demoIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.demo-kicker{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--sp-3)}
.demo-q{font-size:clamp(1.25rem,1rem + 1.1vw,1.55rem);font-weight:600;letter-spacing:-0.03em;color:var(--fg);line-height:1.18;margin-bottom:var(--sp-2)}
.demo-help{color:var(--fg-muted);font-size:.92rem;margin-bottom:var(--sp-5);line-height:1.5}
.demo-options{display:flex;flex-direction:column;gap:8px}
.demo-opt{
  text-align:left;width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;
  font-size:.95rem;font-weight:450;color:var(--fg);cursor:pointer;
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.demo-opt:hover{border-color:var(--teal);background:var(--teal-subtle)}
.demo-opt .opt-arr{color:var(--teal);flex:none;transition:transform var(--dur) var(--ease)}
.demo-opt:hover .opt-arr{transform:translateX(3px)}
.demo-back{margin-top:var(--sp-5);align-self:flex-start;background:none;border:none;cursor:pointer;color:var(--fg-faint);font-size:.86rem;font-weight:450;display:inline-flex;align-items:center;gap:6px;padding:6px 2px}
.demo-back:hover{color:var(--fg)}

.demo-answer{display:flex;flex-direction:column}
.demo-answer.is-urgent .demo-kicker{color:var(--danger)}
.demo-answer-text{font-size:1rem;color:var(--fg-secondary);line-height:1.6;margin-bottom:var(--sp-5)}
.demo-answer-foot{display:flex;flex-direction:column;gap:var(--sp-3);border-top:1px solid var(--border);padding-top:var(--sp-5)}
.demo-cite{align-self:flex-start}
.demo-next{display:flex;align-items:center;gap:11px;background:var(--signal-subtle);border:1px solid rgba(222,140,40,.22);border-radius:var(--r-md);padding:13px 15px}
.demo-next .pin{flex:none}
.demo-next .nx-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-fg);display:block;margin-bottom:2px}
.demo-next .nx-text{font-size:.95rem;font-weight:500;color:var(--fg);line-height:1.3}
.demo-urgent-banner{display:flex;align-items:center;gap:9px;background:rgba(192,54,44,.06);border:1px solid rgba(192,54,44,.28);color:var(--danger);border-radius:var(--r-md);padding:11px 13px;font-weight:500;font-size:.92rem;margin-bottom:var(--sp-4)}
.demo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--sp-5)}
.demo-restart{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:10px 16px;font-weight:500;font-size:.9rem;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.demo-restart:hover{border-color:var(--fg-faint);background:var(--bg-hover)}

.demo-marcos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:2px}
.demo-marco{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 16px;cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.demo-marco:hover{border-color:var(--teal);box-shadow:var(--shadow-sm)}
.demo-marco .dm-ico{width:38px;height:38px;border-radius:var(--r-md);background:var(--teal-subtle);display:grid;place-items:center;color:var(--teal)}
.demo-marco .dm-title{font-size:1.04rem;font-weight:600;letter-spacing:-0.02em;color:var(--fg)}
.demo-marco .dm-tag{font-size:.84rem;color:var(--fg-muted);line-height:1.4}

/* ============ Ruta (signature) ============ */
.route{background:var(--bg-subtle);border-block:1px solid var(--border)}
.ruta-head{max-width:52ch;margin-bottom:clamp(36px,5vw,56px)}
.route-ribbon{width:100%;height:36px;margin-bottom:var(--sp-2)}
.route-ribbon .rr-base{fill:none;stroke:var(--border-strong);stroke-width:2}
.route-ribbon .rr-draw{fill:none;stroke:var(--teal);stroke-width:2;stroke-linecap:round;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 1.5s var(--ease)}
.route.is-visible .route-ribbon .rr-draw{stroke-dashoffset:0}
.route-ribbon .rr-tick{fill:var(--bg-subtle);stroke:var(--teal);stroke-width:2}
.route-ribbon .rr-end{fill:var(--signal);stroke:var(--signal)}
.stops{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.6vw,36px);position:relative}
.stop{display:flex;flex-direction:column;gap:9px;opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease), transform .55s var(--ease)}
.route.is-visible .stop{opacity:1;transform:none}
.route.is-visible .stop:nth-child(2){transition-delay:.1s}
.route.is-visible .stop:nth-child(3){transition-delay:.2s}
.route.is-visible .stop:nth-child(4){transition-delay:.3s}
.stop__num{font-family:var(--font-mono);font-size:.74rem;font-weight:500;color:var(--teal);letter-spacing:.04em}
.stop__title{font-size:1.18rem;font-weight:600;letter-spacing:-0.02em}
.stop__body{color:var(--fg-muted);font-size:.92rem;line-height:1.5}
.stop__pin{display:inline-flex;width:fit-content;align-items:center;gap:6px;margin-top:2px;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--signal-fg);background:var(--signal-subtle);border:1px solid rgba(222,140,40,.22);padding:4px 9px;border-radius:var(--r-sm)}

/* ============ Marcos ============ */
.marcos-intro{max-width:54ch}
.marcos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(32px,4vw,48px)}
.marco{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 22px;display:flex;flex-direction:column;gap:12px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.marco:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}
.marco__ico{width:40px;height:40px;border-radius:var(--r-md);background:var(--teal-subtle);display:grid;place-items:center;color:var(--teal)}
.marco h3{font-size:1.18rem;font-weight:600;letter-spacing:-0.02em}
.marco p{color:var(--fg-muted);font-size:.92rem;line-height:1.55;flex:1}

/* ============ Confianza (oscura) ============ */
.confianza{background:var(--teal-deep);color:var(--on-dark)}
.confianza .eyebrow{color:#6FC0B2}
.confianza .eyebrow::before{background:var(--signal)}
.confianza .section-title{color:#fff;max-width:20ch}
.confianza .intro{color:var(--on-dark-muted);max-width:46ch;margin-top:var(--sp-4)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:clamp(36px,5vw,56px)}
.trust{border-top:1px solid var(--on-dark-border);padding-top:var(--sp-5);display:flex;flex-direction:column;gap:9px}
.trust__ico{color:var(--signal);margin-bottom:2px}
.trust h3{color:#fff;font-size:1.12rem;font-weight:600;letter-spacing:-0.02em}
.trust p{color:var(--on-dark-muted);font-size:.92rem;line-height:1.55}

/* ============ CTA ============ */
.cta-band{background:var(--teal-subtle);border:1px solid rgba(21,117,106,.18);border-radius:var(--r-2xl);padding:clamp(40px,6vw,72px) clamp(28px,5vw,56px);text-align:center}
.cta-band h2{font-size:clamp(1.9rem,1.3rem + 2.6vw,2.9rem);letter-spacing:-0.035em;max-width:18ch;margin-inline:auto;color:var(--teal-deep)}
.cta-band p{color:var(--teal-strong);max-width:44ch;margin:var(--sp-4) auto 0}
.cta-actions{margin-top:var(--sp-6);display:flex;justify-content:center;gap:10px;flex-wrap:wrap}

/* ============ Footer ============ */
.site-footer{background:var(--teal-deep);color:var(--on-dark-muted);padding-block:clamp(48px,6vw,72px) 36px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start}
.footer-brand .brand{color:#fff}
.footer-brand p{margin-top:var(--sp-4);max-width:38ch;color:var(--on-dark-muted);font-size:.9rem;line-height:1.55}
.footer-disc{border-left:2px solid var(--signal);padding-left:16px;font-size:.84rem;line-height:1.6;color:#BCD0CB}
.footer-disc strong{color:#fff;font-weight:600}
.footer-bottom{margin-top:clamp(36px,5vw,56px);padding-top:var(--sp-5);border-top:1px solid var(--on-dark-border);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:#73928B}

/* ============ Modal ============ */
.modal-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,10,10,.5);backdrop-filter:blur(4px);opacity:0;transition:opacity .22s var(--ease)}
.modal-overlay.is-open{opacity:1}
.modal-overlay[hidden]{display:none}
.modal{position:relative;width:100%;max-width:460px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:clamp(26px,4vw,38px);transform:translateY(10px) scale(.99);transition:transform .24s var(--ease)}
.modal-overlay.is-open .modal{transform:none}
.modal-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg);color:var(--fg-muted);cursor:pointer;display:grid;place-items:center;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.modal-close:hover{background:var(--bg-hover);color:var(--fg)}
.modal h2{font-size:clamp(1.4rem,1.2rem + 1vw,1.75rem);letter-spacing:-0.03em;margin-top:var(--sp-2)}
.modal-lead{color:var(--fg-muted);margin-top:var(--sp-3);line-height:1.55;font-size:.95rem}
#pilot-form{margin-top:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:.84rem;font-weight:500;color:var(--fg)}
.field input,.field select{
  font-family:inherit;font-size:.95rem;color:var(--fg);background:var(--bg);
  border:1px solid var(--border-strong);border-radius:var(--r-md);padding:11px 13px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.field input:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-subtle)}
.field input.has-error,.field select.has-error{border-color:var(--danger)}
.field-error{color:var(--danger);font-size:.78rem}
.field-error:empty{display:none}
.modal-fineprint{font-size:.76rem;color:var(--fg-faint);line-height:1.45;margin-top:2px}
.modal-success{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:8px 0}
.modal-success[hidden]{display:none}
.modal-success h2{margin:0}
.modal-success p{color:var(--fg-muted);max-width:34ch;font-size:.95rem}

/* ============ Reveal / motion ============ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease), transform .6s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.hero-copy>*{opacity:0;transform:translateY(12px);animation:rise .7s var(--ease) forwards}
.hero-copy>*:nth-child(1){animation-delay:.04s}
.hero-copy>*:nth-child(2){animation-delay:.12s}
.hero-copy>*:nth-child(3){animation-delay:.2s}
.hero-copy>*:nth-child(4){animation-delay:.28s}
.hero-copy>*:nth-child(5){animation-delay:.36s}
.answer-card{opacity:0;transform:translateY(16px);animation:rise .8s .42s var(--ease) forwards}
.mark-needle{animation:needle 1s var(--ease) forwards}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes needle{0%{transform:rotate(-24deg)}60%{transform:rotate(6deg)}100%{transform:rotate(0)}}

/* ============ Responsive ============ */
@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero-copy{max-width:48ch}
  .answer-card{margin-inline:0}
  .problem .container{grid-template-columns:1fr;gap:24px}
  .demo-marcos{grid-template-columns:1fr}
  .marcos-grid{grid-template-columns:1fr;gap:12px}
  .trust-grid{grid-template-columns:1fr;gap:6px}
  .trust{border-top:none;border-left:1px solid var(--on-dark-border);padding-top:0;padding-left:18px;padding-block:6px}
  .footer-top{grid-template-columns:1fr;gap:28px}
}
@media (max-width:760px){
  .route-ribbon{display:none}
  .stops{grid-template-columns:1fr;gap:0;padding-left:4px}
  .stop{flex-direction:column;position:relative;padding-left:30px;padding-bottom:26px}
  .stop::before{content:"";position:absolute;left:5px;top:6px;bottom:-6px;width:1.5px;background:var(--border-strong)}
  .stop:last-child::before{display:none}
  .stop::after{content:"";position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:50%;background:var(--bg-subtle);border:2px solid var(--teal)}
  .stop:last-child::after{background:var(--signal);border-color:var(--signal)}
  .route.is-visible .stop:nth-child(n){transition-delay:0s}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .reveal,.stop,.hero-copy>*,.answer-card{opacity:1;transform:none}
  .route-ribbon .rr-draw{stroke-dashoffset:0}
  .demo-step{animation:none}
}
