/* Local Larry — Larry's Route animated scene (rev 6) */
.rs-stage{position:relative;width:100%;aspect-ratio:1.5;--rr:1}
.rs-stage>img,.modal-hero-art .rs-stage>img{display:block;width:100%;height:100%;aspect-ratio:1.5;object-fit:contain;border-radius:22px;background:transparent}
.route-visual .visual-label{transition:opacity .3s}
.route-visual .visual-label.rs-hide{opacity:0;pointer-events:none}
.rs-dim{position:absolute;inset:0;border-radius:50%/50%;background:radial-gradient(closest-side,#0e234466,#0e234400);opacity:0;transition:opacity .45s;pointer-events:none}
.rs-stage.s-phone .rs-dim{opacity:1}

/* job progress ring around the yellow pin */
.rs-job{position:absolute;width:9.5%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;z-index:3}
.rs-job svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}
.rs-job circle{fill:none;stroke-width:3.2}
.rs-job-track{stroke:#ffffffcc;opacity:0;transition:opacity .3s}
.rs-job-fill{stroke:var(--yellow);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;filter:drop-shadow(0 0 4px #ffc52b99)}
.rs-stage.s-job .rs-job-track{opacity:1}
.rs-stage.s-job .rs-job-fill{opacity:1;animation:rs-fill 2.2s ease-in-out forwards}
.rs-stage.s-job-done .rs-job svg{animation:rs-ringout .6s ease-out forwards}
.rs-job-tag{position:absolute;left:50%;bottom:118%;transform:translateX(-50%);white-space:nowrap;display:grid;opacity:0;transition:opacity .3s}
.rs-job-tag em{grid-area:1/1;font:700 11px/1 var(--font);font-style:normal;padding:7px 11px;border-radius:99px;box-shadow:0 8px 20px #0e234433;transition:opacity .3s,transform .45s var(--ease-pop,cubic-bezier(.34,1.56,.64,1))}
.rs-job-working{background:#fff;color:var(--navy)}
.rs-job-done{background:#12a150;color:#fff;opacity:0;transform:scale(.6)}
.rs-job-done b{font-weight:800}
.rs-stage.s-job .rs-job-tag{opacity:1}
.rs-stage.s-job-done .rs-job-working{opacity:0}
.rs-stage.s-job-done .rs-job-done{opacity:1;transform:none}
.rs-stage.s-phone .rs-job-tag,.rs-stage.s-search .rs-job-tag{opacity:0}
.rs-stage.s-pulse .rs-job::after{content:"";position:absolute;inset:10%;border-radius:50%;animation:rs-pulse 1.4s ease-out 2}

/* radar + homes */
.rs-radar{position:absolute;left:51%;top:47%;width:calc(92% * var(--rr));height:calc(84% * var(--rr));border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;border:1.5px solid #0878d855;overflow:hidden;z-index:1}
.rs-radar i{position:absolute;inset:-25%;background:conic-gradient(from 0deg,#0878d800 0deg,#0878d800 300deg,#0878d855 352deg,#bfe0ff 360deg);border-radius:50%}
.rs-homes span{position:absolute;width:1.25%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(0);background:#fff;box-shadow:0 0 0 2px var(--blue),0 2px 6px #0e234455;transition:transform .35s var(--ease-pop,cubic-bezier(.34,1.56,.64,1)),background .3s,box-shadow .3s;z-index:2}
.rs-homes span.is-found{transform:translate(-50%,-50%) scale(1)}
.rs-homes span.is-mailed{background:#12a150;box-shadow:0 0 0 2px #fff,0 2px 6px #0e234455}

/* mail paths, envelopes, badges */
.rs-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}
.rs-lines path{fill:none;stroke:#ffd257;stroke-width:.55;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.rs-lines path.is-on{opacity:1;animation:rs-draw .95s ease-in-out forwards}
.rs-stage.s-done .rs-lines path{stroke-dashoffset:0;opacity:.6}
.rs-env{position:absolute;width:4.2%;aspect-ratio:1.45;border-radius:3px;background:#fff linear-gradient(160deg,transparent 46%,#0878d8 47%,#0878d8 53%,transparent 54%) top/100% 60% no-repeat;box-shadow:0 0 0 1.5px #0878d8,0 6px 14px #0e234455;z-index:4;pointer-events:none}
.rs-env::after{content:"";position:absolute;inset:0;background:linear-gradient(20deg,transparent 46%,#0878d8 47%,#0878d8 53%,transparent 54%) top/100% 60% no-repeat}
.rs-badges span{position:absolute;transform:translate(-50%,-185%) scale(.4);opacity:0;background:#12a150;color:#fff;font:800 10px/1 var(--font);letter-spacing:.2px;padding:6px 9px;border-radius:99px;white-space:nowrap;box-shadow:0 6px 16px #0e234440;transition:opacity .25s,transform .45s var(--ease-pop,cubic-bezier(.34,1.56,.64,1));z-index:5;pointer-events:none}
.rs-badges span.is-on{opacity:1;transform:translate(-50%,-185%) scale(1)}

/* phone */
.rs-phone{--py:-50%;position:absolute;left:51.3%;top:47%;width:clamp(170px,34%,220px);transform:translate(-50%,var(--py));opacity:0;pointer-events:none;z-index:8;border-radius:32px;background:#0e1626;padding:7px;box-shadow:0 30px 60px #0e234466,0 0 0 1px #ffffff22 inset;container-type:inline-size}
.rs-phone.is-on{opacity:1;pointer-events:auto}
.rs-screen{background:#f6f8fc;border-radius:26px;padding:6cqw 7cqw 7cqw;display:flex;flex-direction:column;gap:4.5cqw;font-family:var(--font);color:var(--navy)}
.rs-status{display:flex;justify-content:space-between;align-items:center;font-size:5.4cqw;font-weight:700}
.rs-notch{width:30cqw;height:8cqw;border-radius:99px;background:#0e1626}
.rs-status span:last-child{letter-spacing:-1px;font-size:4cqw}
.rs-app{display:flex;align-items:center;gap:3cqw;font-size:7cqw}
.rs-app img{width:11cqw;height:11cqw;object-fit:cover;object-position:50% 8%;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #e3e9f1}
.rs-jobcard{display:flex;gap:3.5cqw;align-items:center;background:#fff;border-radius:5cqw;padding:4cqw;box-shadow:0 2px 8px #0e234412}
.rs-jobcard i{flex:none;width:10cqw;height:10cqw;border-radius:50%;background:#12a150;color:#fff;font:800 5.5cqw/10cqw var(--font);font-style:normal;text-align:center}
.rs-jobcard b{display:block;font-size:6cqw}
.rs-jobcard span{display:block;font-size:4.8cqw;color:var(--muted);margin-top:.6cqw}
.rs-q{margin:1cqw 0 0;font-size:7.4cqw;font-weight:800;letter-spacing:-.2px;line-height:1.15}
.rs-opts{display:grid;gap:2.6cqw}
.rs-opt{position:relative;display:grid;text-align:left;border:1.5px solid #dfe6ef;background:#fff;border-radius:4.5cqw;padding:3.4cqw 12cqw 3.4cqw 4cqw;font-family:var(--font);color:var(--navy);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.rs-opt b{font-size:6cqw}
.rs-opt span{font-size:4.6cqw;color:var(--muted)}
.rs-opt i{position:absolute;right:4cqw;top:50%;width:6.5cqw;height:6.5cqw;margin-top:-3.25cqw;border-radius:50%;border:1.5px solid #c5d0dd;transition:all .2s}
.rs-opt:hover{border-color:#9cc8f0}
.rs-opt[aria-pressed=true]{border-color:var(--blue);background:#eaf4fd;transform:scale(1.02)}
.rs-opt[aria-pressed=true] i{border:2cqw solid var(--blue)}
.rs-send{margin-top:1cqw;border:0;border-radius:99px;padding:4.4cqw;font:800 6cqw var(--font);color:#fff;background:#b8c4d3;cursor:pointer;transition:background .25s,transform .2s}
.rs-send.is-ready{background:var(--blue);box-shadow:0 8px 18px #0878d855}
.rs-send.is-ready:not(.is-sending){animation:rs-nudge 1.6s ease-in-out infinite}
.rs-send.is-sending{background:var(--blue)}
.rs-send.is-sent{background:#12a150;box-shadow:0 8px 18px #12a15055}
.rs-send:disabled{cursor:default}
.rs-screen small{font-size:4.2cqw;color:#8a96a6;text-align:center}
.rs-finger{position:absolute;width:38px;height:38px;border-radius:50%;background:#ffffff55;border:2px solid #fff;box-shadow:0 4px 14px #0e234455;opacity:0;pointer-events:none;z-index:9}

/* panel (assembly line, counters, done) */
.rs-panel{position:absolute;left:50%;bottom:3%;width:min(92%,460px);transform:translateX(-50%);z-index:7;opacity:0;pointer-events:none;transition:opacity .3s}
.rs-panel.is-on{opacity:1;pointer-events:auto}
.rs-p{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #e3e9f1;border-radius:16px;padding:12px 14px;box-shadow:0 16px 40px #0e234426;font-family:var(--font);color:var(--navy)}
.rs-kicker{display:block;font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.rs-big{display:flex;align-items:baseline;gap:7px}
.rs-big b{font-size:26px;letter-spacing:-1px;font-variant-numeric:tabular-nums;min-width:2.2ch}
.rs-big span{font-size:12px;color:var(--muted);font-weight:600}
.rs-bar{height:5px;border-radius:9px;background:#e8eef6;overflow:hidden;margin-top:6px}
.rs-bar i{display:block;height:100%;width:0;background:var(--blue);border-radius:9px}
.rs-bar.is-green i{background:#12a150}
.rs-p-line{display:flex;align-items:center;gap:10px}
.rs-belt{display:grid;gap:5px;flex:1;min-width:0}
.rs-chip{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;background:#f2f6fb;border-radius:99px;padding:5px 9px 5px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:rs-chip .9s calc(var(--k) * .45s) cubic-bezier(.2,.8,.2,1) both}
.rs-chip i{flex:none;width:15px;height:15px;border-radius:50%;background:#12a150;color:#fff;font:800 8px/15px var(--font);font-style:normal;text-align:center}
.rs-arrow{color:var(--blue);font-size:18px;animation:rs-arrow 1s 1.2s ease-in-out both}
.rs-card{position:relative;flex:none;width:44%;aspect-ratio:815/562;border-radius:6px;overflow:hidden;box-shadow:0 8px 20px #0e234433;animation:rs-card-in .6s .3s cubic-bezier(.34,1.56,.64,1) both}
.rs-card-art,.rs-sheet{position:absolute;inset:0;background-size:205.15% auto;background-position:1.3% 50%;background-repeat:no-repeat}
.rs-card-print{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,#0e2344dd);padding:14% 6% 5%}
.rs-card-print em{display:block;font:800 9.5px/1.15 var(--font);font-style:normal;color:#fff;white-space:nowrap;overflow:hidden;width:0;border-right:2px solid var(--yellow);animation:rs-type 1.1s 1.5s steps(26) forwards,rs-caret .6s 1.5s step-end 4}
.rs-p-print{display:flex;align-items:center;gap:14px}
.rs-printer{position:relative;flex:none;width:96px;height:62px}
.rs-slot{position:absolute;left:0;right:0;top:0;height:16px;border-radius:6px 6px 3px 3px;background:var(--navy);z-index:3;box-shadow:0 3px 8px #0e234455}
.rs-sheet{inset:auto;left:8px;right:8px;top:10px;height:50px;border-radius:3px;box-shadow:0 3px 8px #0e234433;transform:translateY(-38px);opacity:0;animation:rs-sheet .9s calc(var(--k) * .42s) cubic-bezier(.2,.8,.2,1) forwards}
.rs-p-done{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}
.rs-done-check{width:36px;height:36px;border-radius:50%;background:#12a150;color:#fff;font:800 17px/36px var(--font);text-align:center;animation:rs-pop .5s cubic-bezier(.34,1.56,.64,1) both}
.rs-p-done b{display:block;font-size:14px;letter-spacing:-.3px}
.rs-p-done div>span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.rs-done-btns{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.rs-done-btns button{border:1px solid #d6e2ef;background:#fff;border-radius:99px;padding:6px 12px;font:700 11px var(--font);color:var(--navy);cursor:pointer}
.rs-done-btns button:first-child{background:var(--blue);border-color:var(--blue);color:#fff}
.rs-done-btns button:hover{transform:translateY(-1px)}
.rs-stage.is-paused::after{content:"Paused";position:absolute;top:4%;right:4%;background:var(--navy);color:#fff;font:700 10px var(--font);padding:5px 9px;border-radius:99px;z-index:10}

/* step list + controls (copy column) */
.rs-steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:7px}
.rs-steps li{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;color:#8492a3;transition:color .3s}
.rs-steps li span{flex:none;width:24px;height:24px;border-radius:50%;background:#f0f4f9;display:grid;place-items:center;font-size:10px;font-weight:800;transition:background .3s,color .3s,transform .3s}
.rs-steps li.is-active{color:var(--blue)}
.rs-steps li.is-active span{background:var(--blue);color:#fff;transform:scale(1.12);box-shadow:0 0 0 4px #0878d822}
.rs-steps li.is-done{color:var(--navy)}
.rs-steps li.is-done span{background:#12a150;color:#fff;font-size:0}
.rs-steps li.is-done span::before{content:"✓";font-size:11px}
.rs-controls{margin-top:16px}
.rs-play{display:inline-flex;align-items:center;gap:9px;border:1px solid #d6e2ef;background:#fff;border-radius:99px;padding:8px 16px 8px 8px;font:700 13px var(--font);color:var(--navy);cursor:pointer;transition:transform .2s,border-color .2s}
.rs-play:hover{transform:translateY(-1px);border-color:#9cc8f0}
.rs-play .play-circle{width:26px;height:26px;font-size:9px}

@media(max-width:700px){
 .rs-phone{width:clamp(150px,46%,190px);top:2%;--py:0%;transform-origin:50% 30%}
 .rs-stage.s-phone{margin-bottom:62%;transition:margin .4s}
 .rs-stage{transition:margin .4s}
 .rs-panel{bottom:-6%;width:96%}
 .rs-p{padding:10px 11px}
 .rs-big b{font-size:22px}
 .rs-badges span{font-size:8px;padding:4px 6px}
 .rs-job-tag em{font-size:10px;padding:6px 9px}
 .rs-chip{font-size:9.5px}
}

@keyframes rs-fill{to{stroke-dashoffset:0}}
@keyframes rs-ringout{0%{transform:rotate(-90deg) scale(1);opacity:1}100%{transform:rotate(-90deg) scale(1.5);opacity:0}}
@keyframes rs-pulse{0%{box-shadow:0 0 0 0 #ffc52bcc}100%{box-shadow:0 0 0 26px #ffc52b00}}
@keyframes rs-draw{to{stroke-dashoffset:0}}
@keyframes rs-nudge{0%,100%{transform:none}50%{transform:scale(1.04)}}
@keyframes rs-chip{0%{opacity:0;transform:translateX(-30px)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes rs-arrow{0%{opacity:0;transform:translateX(-6px)}100%{opacity:1;transform:none}}
@keyframes rs-card-in{0%{opacity:0;transform:scale(.7) rotate(-4deg)}100%{opacity:1;transform:none}}
@keyframes rs-type{to{width:100%}}
@keyframes rs-caret{50%{border-color:transparent}}
@keyframes rs-sheet{0%{transform:translateY(-38px);opacity:0}25%{opacity:1}100%{transform:translateY(calc(var(--k) * -2px));opacity:1}}
@keyframes rs-pop{0%{transform:scale(.3);opacity:0}100%{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.rs-stage *,.rs-steps *{animation:none!important;transition:none!important}.rs-card-print em{width:100%;border:0}.rs-sheet{transform:none;opacity:1}}

/* Scene inside pop-ups */
.rs-caption{padding:14px 6px 0;text-align:center}
.rs-caption b{display:block;font-size:14px;color:var(--navy)}
.rs-caption>span{display:block;font-size:12px;color:#8a97a7;margin-top:4px}
.modal-hero-art .rs-stage{max-width:100%}
.modal-hero-art .rs-controls{display:flex;justify-content:center;margin-top:10px}
.spot-tabs{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;background:var(--gray);border-radius:99px;padding:4px;margin-top:20px;--tab:0}
.spot-tabs button{position:relative;z-index:1;border:0;background:none;font:700 13px var(--font);padding:10px 20px;border-radius:99px;color:var(--navy);cursor:pointer;transition:color .3s;white-space:nowrap}
.spot-tabs button[aria-selected=true]{color:#fff}
.spot-tabs-pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:99px;background:var(--blue);transform:translateX(calc(var(--tab) * 100%));transition:transform .42s cubic-bezier(.34,1.56,.64,1);box-shadow:0 6px 14px #0878d844}
.spot-route{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.8fr);gap:40px;align-items:center;margin-top:22px}
.spot-route-art{min-width:0}
.spot-route-side{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.spot-route-side .rs-steps{margin-top:0}
.spot-to-sample{margin-top:18px!important;width:auto!important}
.spot-route-note{font-size:11px;color:#8a96a6;line-height:1.5;margin-top:8px}
.spot-pane[hidden]{display:none}
@media(max-width:900px){.spot-route{grid-template-columns:1fr;gap:18px}.spot-tabs button{padding:9px 13px;font-size:12px}}
