/* ===== 42.2K Referral Marathon Challenge — map v2 (2.9.74) ===== */
.rts-mp2{max-width:1600px !important;padding:10px 14px 12px;overflow-x:hidden;} /* 2026-09-11: safety net against horizontal overflow — see note below */
.rts-mp2,.rts-mp2 *{box-sizing:border-box;}
.rts-mp2 .rts-mp-head{gap:8px;flex-wrap:wrap;align-items:center;}
.rts-mp2 .rts-mp-wm{width:150px;}
.rts-mp2 .rts-mp-dbtn{background:linear-gradient(180deg,#14284a,#0b1a33);border:1px solid var(--gold);color:var(--gold2);border-radius:7px;padding:7px 11px;font:600 10.5px/1 Georgia,serif;letter-spacing:.1em;cursor:pointer;white-space:nowrap;} .rts-mp2 .rts-mp-dbtn span{margin-left:5px;font-size:9px;}
.rts-mp2 .rts-mp-head nav{flex:1;justify-content:center;gap:8px;font-size:10.5px;letter-spacing:.1em;white-space:nowrap;} .rts-mp2 .rts-mp-head nav a{color:#F0D28A !important;text-decoration:none !important;} .rts-mp2 .rts-mp-head nav a:hover{color:#fff !important;}
.rts-mp2 .ico{width:14px;height:14px;vertical-align:-2px;margin-right:6px;fill:currentColor;} .rts-mp2 .yav.ghost svg{width:34px;height:34px;fill:#8FA3BE;} .rts-mp2 .av.ghost svg{width:16px;height:16px;fill:#8FA3BE;}
.rts-mp2 .rts-mp-survey{padding:8px 14px;font-size:10.5px;}
.rts-mp2 .rts-mp-play{background:transparent;border:1.5px solid var(--gold);color:var(--gold2);border-radius:7px;padding:8px 16px;font:700 11px/1 Georgia,serif;letter-spacing:.12em;cursor:pointer;white-space:nowrap;}
.rts-mp2 .rts-mp-title{margin:8px 0 6px;border-top:1px solid rgba(201,163,85,.35);border-bottom:1px solid rgba(201,163,85,.35);padding:8px 0;}
.rts-mp2 .rts-mp-body{grid-template-columns:186px minmax(0,1fr) 210px; gap:10px; padding-top:22px; align-items:start;}  /* 2026-09-14: 149/171 truncated the names to "Ta..." - this is the narrowest that still fits a first name + last initial */ /* 2026-09-13: padding-top gives the top-of-route runner bubbles (they hang ABOVE their anchor point) room to sit below the title instead of overlapping it - Curtis: "heads still going above the map" */
.rts-mp2, .rts-mp2 *{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1,"onum" 0;} /* 2026-09-13: Georgia old-style figures were sitting below the letters (59K, 42.2K, 15K... and the title) - same fix as the trophy plates and leaderboard */
/* panels (rules / share) — parchment, as designed */
.rts-mp-panel{max-width:660px;margin:0 auto 14px;background:linear-gradient(180deg,#F3E3C3,#E8D3A6);border:2px solid var(--gold);border-radius:8px;box-shadow:0 18px 50px rgba(0,0,0,.55);padding:6px;color:#2A2018;}
.rts-mp-panel.small{max-width:420px;}
.rts-mp-panel-in{border:1px solid rgba(153,116,40,.5);border-radius:5px;padding:18px clamp(14px,3vw,28px) 20px;}
.rts-mp-ph{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #B99A5B;padding-bottom:10px;margin-bottom:12px;} .rts-mp-ph h2{margin:0;font-variant:small-caps;letter-spacing:1.5px;color:#4A2F0C;font-size:22px;}
.rts-mp-x{background:none;border:1px solid #B99A5B;color:#5A3E12;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;}
.rts-mp-sl{font-variant:small-caps;letter-spacing:1.5px;color:#8A4B12;font-size:13px;margin:16px 0 8px;display:flex;align-items:center;gap:8px;} .rts-mp-sl::after{content:"";flex:1;height:1px;background:rgba(153,116,40,.35);}
.rts-mp-panel p{margin:0 0 10px;line-height:1.6;font-size:14.5px;color:#2A2018;} .rts-mp-panel ol{margin:0 0 6px;padding-left:22px;} .rts-mp-panel ol li{margin-bottom:10px;line-height:1.55;font-size:14.5px;} .rts-mp-panel ol li strong{color:#5A3E12;}
.rts-mp-legal p{font-size:13px;color:#4B3E2E;} .rts-mp-legal a{color:#4A2F0C;}
.rts-mp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;} .rts-mp-abtn{flex:1;min-width:140px;background:#12233A;color:#E4C77A;border:1px solid var(--gold);border-radius:6px;padding:11px 14px;font:600 13px/1 Georgia,serif;font-variant:small-caps;letter-spacing:1px;cursor:pointer;}
.rts-mp-emailform{margin-top:12px;padding:12px;background:rgba(255,255,255,.35);border:1px solid rgba(153,116,40,.4);border-radius:6px;} .rts-mp-emailform label{display:block;font-size:12px;color:#5A3E12;font-variant:small-caps;margin-bottom:8px;} .rts-mp-emailform input{display:block;width:100%;padding:8px 10px;margin-top:3px;border:1px solid #B99A5B;border-radius:4px;font:14px Georgia,serif;background:#FBF3E1;color:#2A2018;} .rts-mp-send{background:var(--gold);color:#2A1E08;border:0;padding:9px 18px;border-radius:4px;font:600 13px Georgia,serif;font-variant:small-caps;letter-spacing:1px;cursor:pointer;}
/* map */
.rts-mp2 .rts-mp-map{position:relative;aspect-ratio:1466/1073;border-radius:10px;border:1px solid rgba(201,163,85,.5);container-type:inline-size;overflow:visible;} .rts-mp2 .rts-mp-map-bg{position:absolute;inset:0;background-size:100% 100%;border-radius:10px;overflow:hidden;z-index:0;}
.rts-mp2 .pav{width:46px;height:46px;border-radius:50%;background:#0d2a52;border:2px solid var(--gold2);color:var(--gold2);font:700 11px 'Public Sans',Arial,sans-serif;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.5);} .rts-mp2 .pav img{width:100%;height:100%;object-fit:cover;object-position:center 20%;}
.rts-mp2 .rts-mp-pin,.rts-mp2 .rts-mp-runner{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:1;text-decoration:none;color:#fff;font-family:Georgia,serif;}
.rts-mp2 .rts-mp-pin{background:none;border:0;padding:0;cursor:pointer;z-index:3;}
.rts-mp2 .bub{background:linear-gradient(180deg,#F0D28A,#C9A355);color:#1b1400;font:700 10px/1 'Public Sans',Arial,sans-serif;padding:5px 7px;border-radius:12px 12px 12px 2px;border:1px solid #7a5a1a;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.5);} .rts-mp2 .bub b{margin-left:3px;color:#7a1a1a;}
.rts-mp2 .rts-mp-pin.empty .bub{opacity:.85;}
.rts-mp2 .rts-mp-map .nm{background:rgba(6,20,44,.85);border:1px solid rgba(201,163,85,.6);color:#fff;font-size:9.5px;padding:2px 6px;border-radius:4px;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;}
.rts-mp2 .mbadge{position:absolute;right:-6px;top:22px;background:#7a1a1a;color:#F0D28A;font:700 9px/1 'Public Sans',Arial,sans-serif;padding:3px 5px;border-radius:10px;border:1px solid var(--gold2);}
.rts-mp2 .rts-mp-runner{z-index:2;} .rts-mp2 .rts-mp-runner.repeat .pav{width:54px;height:54px;border-width:3px;} .rts-mp2 .rts-mp-runner.hilite .pav{box-shadow:0 0 0 4px rgba(240,210,138,.55),0 4px 14px rgba(0,0,0,.6);} .rts-mp2 .rts-mp-runner.hilite .nm{background:var(--gold2);color:#1b1400;font-weight:700;}
.rts-mp2 .rts-mp-you{position:absolute;transform:translate(-50%,-100%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:4px;}
.rts-mp2 .yav{width:64px;height:64px;border-radius:50%;background:#0d2a52;border:3px solid var(--gold2);color:var(--gold2);font:700 18px 'Public Sans',Arial,sans-serif;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 0 0 4px rgba(240,210,138,.35),0 6px 18px rgba(0,0,0,.6);} .rts-mp2 .yav img{width:100%;height:100%;object-fit:cover;} .rts-mp2 .yav.ghost{font-size:30px;background:#123;}
.rts-mp2 .ylbl{background:linear-gradient(180deg,#0f2246,#08162e);border:1.5px solid var(--gold2);border-radius:8px;padding:6px 14px;text-align:center;color:var(--gold2);font:700 13px/1.15 Georgia,serif;letter-spacing:.12em;box-shadow:0 4px 14px rgba(0,0,0,.6);} .rts-mp2 .ylbl b{display:block;color:#fff;font-size:17px;margin-top:2px;} .rts-mp2 .ylbl i{display:inline-block;margin-top:3px;font-style:normal;background:#7a1a1a;padding:2px 6px;border-radius:8px;font-size:10px;} .rts-mp2 .ylbl.anon{font-size:11px;letter-spacing:.04em;line-height:1.3;}
.rts-mp2 .rts-mp-you.repeat .yav{width:76px;height:76px;}
.rts-mp2 .rts-mp-podium{position:absolute;left:0;right:0;margin:0 auto;top:40%;transform:translateY(-50%);text-align:center;z-index:4;display:block;padding:0;background:none;border:0;border-radius:0;gap:0;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 16px);} /* 2026-09-11 (v2): first attempt used left:50%+translateX(-50%), which Curtis confirmed still cuts the 4th card off the right edge even after the padding/gap leak fix and the page-level overflow-x:hidden safety net — meaning the centering math itself was the problem, not just leaked styling. Switched to left:0;right:0;margin:0 auto (auto-centering that can never push past its container's edges, unlike translateX centering which can), plus an explicit max-width safety cap. */
.rts-mp2 .rts-mp-podium-t{display:inline-block;background:linear-gradient(180deg,#F0D28A,#C9A355);color:#1b1400;font:700 9px/1 Georgia,serif;letter-spacing:.16em;padding:5px 14px;clip-path:polygon(4% 0,96% 0,100% 50%,96% 100%,4% 100%,0 50%);margin-bottom:5px;}
.rts-mp2 .rts-mp-podium-row{display:flex;gap:5px;justify-content:center;}
.rts-mp2 .rts-mp-p{background:rgba(6,20,44,.86);border:1px solid rgba(201,163,85,.6);border-radius:6px;padding:4px 4px 3px;width:52px;display:flex;flex-direction:column;align-items:center;gap:1px;} .rts-mp2 .rts-mp-p .rank{background:var(--gold);color:#1b1400;width:12px;height:12px;border-radius:50%;font:700 8px/12px 'Public Sans',Arial,sans-serif;text-align:center;} .rts-mp2 .rts-mp-p .av{width:24px;height:24px;} .rts-mp2 .rts-mp-p .nm{font-size:7px;max-width:46px;background:none;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .rts-mp2 .rts-mp-p .km{color:var(--gold2);font:700 8px Georgia,serif;} .rts-mp2 .rts-mp-p.empty{opacity:.55;} .rts-mp2 .rts-mp-more{cursor:pointer;justify-content:center;border-color:var(--gold2);background:rgba(240,210,138,.10);} .rts-mp2 .rts-mp-more .plus{color:var(--gold2);font:700 15px/1 Georgia,serif;margin-top:4px;} .rts-mp2 .rts-mp-more .nm{color:#fff;font-size:7px;letter-spacing:.12em;text-transform:uppercase;} .rts-mp2 .rts-mp-more:hover{background:rgba(240,210,138,.22);}
/* left/right columns */
.rts-mp2 .rts-mp-around li .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;} .rts-mp2 .rts-mp-msrow .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;} .rts-mp2 .rts-mp-around li .arrow{width:12px;height:12px;flex:none;} .rts-mp2 .rts-mp-around li .arrow.up{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #2ecc71;} .rts-mp2 .rts-mp-around li .arrow.down{border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid #e0433a;} .rts-mp2 .rts-mp-around li .arrow.same,.rts-mp2 .rts-mp-around li .arrow.you{border-left:10px solid var(--gold2);border-top:6px solid transparent;border-bottom:6px solid transparent;} .rts-mp2 .rts-mp-around li.me{border:1px solid var(--gold2);border-radius:8px;padding:6px 6px;background:rgba(240,210,138,.08);} .rts-mp2 .av.ghost{background:#123;font-size:14px;}
.rts-mp2 .rts-mp-ms li{padding:0;border:0;} .rts-mp2 .rts-mp-msrow{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;border-bottom:1px solid rgba(201,163,85,.25);padding:7px 2px;color:#fff;font:13px Georgia,serif;cursor:pointer;text-align:left;} .rts-mp2 .rts-mp-msrow:hover{background:rgba(240,210,138,.06);} .rts-mp2 .tro{width:38px;height:38px;border-radius:50%;overflow:hidden;border:1.5px solid var(--gold);flex:none;background:#0a1d3d;} .rts-mp2 .tro img{width:100%;height:100%;object-fit:cover;object-position:center 30%;} .rts-mp2 .badge{color:var(--gold2);font:700 14px Georgia,serif;width:46px;flex:none;letter-spacing:.04em;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1,"onum" 0;} /* 2026-09-13: this shorthand font: was resetting font-variant-numeric to normal, beating the page-wide rule - numerals sat low again */ .rts-mp2 .chev{color:var(--gold2);font-size:12px;} .rts-mp2 .av.empty{opacity:.4;}
.rts-mp2 .rts-mp-over h4{font-size:15px;} .rts-mp2 .rts-mp-overrow{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(201,163,85,.25);font-size:13px;} .rts-mp2 .rts-mp-overrow .mbadge{position:static;} .rts-mp2 .rts-mp-empty{color:#C9D3E0;font-size:12.5px;font-style:italic;margin:0;}
.rts-mp2 .rts-mp-wheel{text-align:center;padding:6px 8px 16px;} .rts-mp2 .rts-mp-wheel p{color:#F3E6C8;font-size:13px;line-height:1.5;margin:8px 0 0;}
/* drop-down sheet (one component, both entry points) */
.rts-mp-sheet{position:fixed;inset:0;background:rgba(1,20,46,.7);z-index:100001;display:flex;align-items:flex-end;justify-content:center;} .rts-mp-sheet[hidden]{display:none;}
.rts-mp-sheet-in{width:min(560px,100%);max-height:70vh;background:linear-gradient(180deg,#0f2246,#08162e);border:1.5px solid var(--gold);border-radius:14px 14px 0 0;padding:14px 16px 20px;display:flex;flex-direction:column;box-shadow:0 -10px 40px rgba(0,0,0,.6);}
.rts-mp-sheet-h{display:flex;align-items:center;gap:10px;color:var(--gold2);border-bottom:1px solid rgba(201,163,85,.35);padding-bottom:10px;margin-bottom:8px;} .rts-mp-sheet-h .t{font:700 22px Georgia,serif;letter-spacing:.06em;} .rts-mp-sheet-h small{flex:1;font:600 9.5px 'Public Sans',Arial,sans-serif;letter-spacing:.18em;color:#C9D3E0;} .rts-mp-sheet-h .rts-mp-x{border-color:var(--gold);color:var(--gold2);}
.rts-mp-sheet-list{list-style:none;margin:0;padding:0;overflow:auto;} .rts-mp-sheet-list li{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid rgba(201,163,85,.2);color:#fff;font:13.5px Georgia,serif;} .rts-mp-sheet-list .n{width:20px;color:var(--gold2);font-weight:700;} .rts-mp-sheet-list .av{width:30px;height:30px;border-radius:50%;background:#0d2a52;border:1px solid var(--gold2);overflow:hidden;display:flex;align-items:center;justify-content:center;font:700 10px 'Public Sans',Arial,sans-serif;color:var(--gold2);flex:none;} .rts-mp-sheet-list .av img{width:100%;height:100%;object-fit:cover;} .rts-mp-sheet-list .nm{flex:1;} .rts-mp-sheet-list .km{color:var(--gold2);font-weight:700;} .rts-mp-sheet-list .when{color:#C9D3E0;font-size:11px;} .rts-mp-sheet-list .mbadge{position:static;} .rts-mp-sheet-list .none{justify-content:center;color:#C9D3E0;font-style:italic;}
/* responsive */
@media (max-width:1100px){.rts-mp2 .rts-mp-body{grid-template-columns:130px minmax(0,1fr) 150px;} .rts-mp2 .rts-mp-head nav{display:none;}}
@media (max-width:820px){.rts-mp2 .rts-mp-body{grid-template-columns:1fr; gap:16px; padding-top:90px;} /* 2026-09-14: extra clearance so the highest trophy pins sit over the island, not above its edge */ .rts-mp2 .rts-mp-map{order:-1;margin-bottom:118px;} .rts-mp2 .pav{width:34px;height:34px;} .rts-mp2 .bub{font-size:8px;padding:3px 5px;} .rts-mp2 .nm{display:none;} .rts-mp2 .yav{width:44px;height:44px;} .rts-mp2 .ylbl{font-size:10px;padding:4px 8px;} .rts-mp2 .rts-mp-podium{position:absolute;left:0;right:0;margin:14px auto 0;top:100%;transform:none;} .rts-mp2 .rts-mp-p{width:56px;} .rts-mp2 .rts-mp-p .nm{display:block;font-size:8px;} .rts-mp2 .rts-mp-head{justify-content:center;} .rts-mp2 .rts-mp-wm{width:165px;}}
/* 2026-09-11: fixed real bug reported by Curtis (screenshot) — the MARATHON FINISHERS panel was pinned at top:38% on phone, sitting right on top of the middle of the island map and blocking it. Moved to sit just below the map instead (top:100%, no vertical centering), with margin-bottom added to the map so the panel has room and doesn't overlap whatever comes after it. Desktop/tablet (above 820px) is unchanged — the panel still overlays the map there, which is the original intended look. */
@media print{body *{visibility:hidden;} .rts-mp2,.rts-mp2 *{visibility:visible;} .rts-mp2{position:absolute;left:0;top:0;width:100%;max-width:none !important;border:0;background:#fff;color:#000;} .rts-mp2 .rts-mp-head,.rts-mp-panel,.rts-mp-sheet,.rts-mp2 .rts-mp-play{display:none !important;}}


/* ===== 2026-09-13 (Curtis) ===== */
/* numerals level with letters - any shorthand font: below resets this, so it is repeated per element */
.rts-mp2 .badge,.rts-mp2 .bub,.rts-mp2 .km,.rts-mp2 .ylbl,.rts-mp2 .ylbl b,.rts-mp2 .rts-mp-title,
.rts-mp2 .rts-mp-p .km,.rts-mp2 .rts-mp-overrow .badge,.rts-mp2 .mbadge,.rts-mp2 .rts-mp-around li .km{
  font-variant-numeric:lining-nums !important;font-feature-settings:"lnum" 1,"onum" 0 !important;}
/* Around You / Top 4 distances in gold */
.rts-mp2 .rts-mp-around li .km,.rts-mp2 .rts-mp-top li .km{color:var(--gold2);font-weight:700;}
/* map sits lower, clear of the title, and scales with the column like Arpit's */

.rts-mp2 .rts-mp-map{width:100%;height:auto;max-width:100%;}
/* Around You "+N more" */
.rts-mp2 .rts-mp-aroundbtn{display:block;width:100%;margin:8px 0 0;padding:7px 0;background:rgba(240,210,138,.10);border:1px solid var(--gold2);border-radius:6px;color:var(--gold2);font:700 11px/1 'Public Sans',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;}
.rts-mp2 .rts-mp-aroundbtn:hover{background:rgba(240,210,138,.22);}
.rts-mp2 .rts-mp-around-more{margin-top:0;}

/* 2026-09-13: styling for the Danna video modal (markup existed, styles never did) */
.rts-vid-modal{position:fixed;inset:0;z-index:9999;background:rgba(3,10,24,.88);display:flex;align-items:center;justify-content:center;padding:24px;}
.rts-vid-modal[hidden]{display:none;}
.rts-vid-box{position:relative;width:min(1100px,94vw);}
.rts-vid-k{display:block;text-align:center;color:#F0D28A;font:700 13px/1 'Public Sans',Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;margin-bottom:14px;}
.rts-vid-box video{width:100%;max-height:80vh;display:block;background:#000;border:1px solid #C9A355;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.6);}
.rts-vid-close{position:absolute;top:-6px;right:-6px;width:44px;height:44px;border-radius:50%;background:#0d2a52;border:2px solid #C9A355;color:#F0D28A;font-size:22px;line-height:1;cursor:pointer;}
.rts-vid-close:hover{background:#123a6e;}
@media (max-width:820px){.rts-vid-k{font-size:11px;letter-spacing:.14em;} .rts-vid-close{top:-4px;right:-4px;width:38px;height:38px;font-size:18px;}}

/* ===== 2026-09-14 (Curtis, modelled on Arpit's map) ===== */
/* 1. map runs edge to edge and taller */
 /* 2026-09-14: markers hang ABOVE their anchor point, so the top of the route needs clearance or 20K/21.1K get cut off by the title */
.rts-mp2 .rts-mp-map{aspect-ratio:1466/1073; min-height:0; height:auto; overflow:visible; touch-action:none;} /* 2026-09-14: reverted to the image's TRUE ratio. Yesterday's flexible height let background-size:cover crop the picture, which slid every avatar off the painted track - the coordinate table is calibrated to the uncropped image. overflow:visible so markers that sit above the top edge are no longer cut off. */
.rts-mp2 .rts-mp-vp{position:absolute; inset:0; overflow:visible;} /* 2026-09-14: markers hang up to ~45px ABOVE their anchor point. Clipping here cut the 20K/21.1K bubbles off. Clipping now happens on an inner layer that holds ONLY the scaling background, so the picture still stays inside its rounded frame while markers - which live outside that layer - can overhang freely. */
.rts-mp2 .rts-mp-vp .rts-mp-map-bg{border-radius:10px;}
.rts-mp2 .rts-mp-map{isolation:isolate;}
.rts-mp2 .rts-mp-vp::before{content:"";position:absolute;inset:0;overflow:hidden;border-radius:10px;pointer-events:none;}
.rts-mp2 .rts-mp-vp .rts-mp-map-bg{transform:scale(var(--rts-z,1)) translate(calc(var(--rts-px,0px)/var(--rts-z,1)), calc(var(--rts-py,0px)/var(--rts-z,1))); transform-origin:50% 50%; background-size:cover; background-position:center; will-change:transform;}
.rts-mp2 .rts-mp-map.is-zoomed{cursor:grab;}
.rts-mp2 .rts-mp-map.is-dragging{cursor:grabbing;}

/* 2. real trophy art on the milestone pins (was a plain gold bubble) */
.rts-mp2 .rts-mp-pin .tro-pin{display:block;width:46px;height:46px;border-radius:50%;overflow:hidden;border:2px solid var(--gold);background:#0a1d3d;box-shadow:0 3px 10px rgba(0,0,0,.55);margin:0 auto;}
.rts-mp2 .rts-mp-pin .tro-pin img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;}
.rts-mp2 .rts-mp-pin.empty .tro-pin{filter:grayscale(1) brightness(.6);border-color:rgba(201,163,85,.45);}
.rts-mp2 .rts-mp-pin .bub{margin-top:3px;}

/* 3. circular avatars on the track */
.rts-mp2 .pav, .rts-mp2 .yav{border-radius:50%;}

/* 4. zoom controls */
.rts-mp2 .rts-mp-zoomui{position:absolute;top:12px;right:12px;z-index:6;display:flex;flex-direction:column;gap:6px;}
.rts-mp2 .rts-mp-zbtn{width:38px;height:38px;border-radius:8px;background:rgba(8,22,46,.9);border:1px solid var(--gold);color:var(--gold2);font:700 18px/1 Georgia,serif;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.5);}
.rts-mp2 .rts-mp-zbtn:hover{background:rgba(201,163,85,.25);}
@media (max-width:820px){
  .rts-mp2 .rts-mp-map{min-height:56vh;}
  .rts-mp2 .rts-mp-pin .tro-pin{width:34px;height:34px;}
  .rts-mp2 .rts-mp-zbtn{width:32px;height:32px;font-size:15px;}
}


/* 2026-09-14 (Curtis): avatar faces ~25% smaller so the track reads more clearly */
.rts-mp2 .pav{width:38px;height:38px;}
.rts-mp2 .rts-mp-runner.repeat .pav{width:40px;height:40px;border-width:2px;}
.rts-mp2 .yav{width:48px;height:48px;}
.rts-mp2 .rts-mp-you.repeat .yav{width:57px;height:57px;}
.rts-mp2 .rts-mp-pin .tro-pin{width:38px;height:38px;}
/* Top 4 / Around You distances in gold */
.rts-mp2 .rts-mp-top li .km, .rts-mp2 .rts-mp-top .km{color:var(--gold2);font-weight:700;}
.rts-mp2 .rts-mp-card ol li .km, .rts-mp2 .rts-mp-card ol li span:last-child{color:var(--gold2);}
@media (max-width:820px){
  .rts-mp2 .pav{width:28px;height:28px;}
  .rts-mp2 .yav{width:38px;height:38px;}
  .rts-mp2 .rts-mp-pin .tro-pin{width:28px;height:28px;}
}


/* 2026-09-14 (Curtis) */
/* (3) fancier title - the serif display face used across the brand, not the plain fallback */
.rts-mp2 .rts-mp-title{font-family:'Cinzel','Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:.06em;}
/* (4) the ocean continues behind the whole panel instead of stopping at the map's edge */


/* ===== 2026-09-14 (Curtis, round 3) ===== */
/* 1. title: fancier display face, gold gradient like the reference mockups */


/* 2. milestone trophy pins sat ABOVE the island edge because the whole pin stacks upward from its
      anchor. Centring them on the anchor keeps them on the track instead of floating over water. */
.rts-mp2 .rts-mp-pin{transform:translate(-50%,-62%);}

/* 3. YOU label ~50% smaller; the face stays the size it was */
.rts-mp2 .ylbl{font-size:9px;padding:3px 8px;border-width:1px;letter-spacing:.08em;}
.rts-mp2 .ylbl b{font-size:12px;margin-top:1px;}
.rts-mp2 .ylbl i{font-size:8px;padding:1px 4px;}

/* 4. ocean continues BEHIND the panel only - the map keeps its own frame */
.rts-mp2{background-image:url('assets/map/balcony-bg.jpg?v=20260914c');background-size:cover;background-position:center center;background-repeat:no-repeat;} /* 2026-09-14 (Curtis): sunset balcony backdrop - 1500x1046, close to the page's own shape so little is cropped */ /* 2026-09-14 (Curtis): sandy beach backdrop; positioned so the sand band sits behind the map and the sea/sky behind the title */ /* 2026-09-14 (Curtis): sunset ocean photo as the page ground, replacing the dark ocean tile */
.rts-mp2::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,44,.50) 0%,rgba(6,20,44,.34) 45%,rgba(6,20,44,.46) 100%);z-index:0;pointer-events:none;} /* lighter veil than before so the sunset actually shows; the side panels carry their own dark fill for text */
.rts-mp2 > *{position:relative;z-index:1;}


/* 2026-09-14 (Curtis): avatars a further 20% smaller, and name labels tightened, so the
   declutter pass in map2.js has room to separate everything without pushing markers off-track. */
.rts-mp2 .pav{width:30px;height:30px;}
.rts-mp2 .rts-mp-runner.repeat .pav{width:32px;height:32px;}
.rts-mp2 .yav{width:38px;height:38px;}
.rts-mp2 .rts-mp-you.repeat .yav{width:46px;height:46px;}
.rts-mp2 .rts-mp-pin .tro-pin{width:30px;height:30px;}
.rts-mp2 .nm{font-size:8px;padding:1px 4px;}
.rts-mp2 .bub{font-size:8px;padding:3px 5px;}
@media (max-width:820px){
  .rts-mp2 .pav{width:24px;height:24px;}
  .rts-mp2 .yav{width:32px;height:32px;}
  .rts-mp2 .rts-mp-pin .tro-pin{width:24px;height:24px;}
}


/* ===== 2026-09-14 (Curtis): overlap at narrower windows ===== */
/* The markers were a fixed pixel size, so on a smaller screen the map shrank but the avatars did
   not - they crowded together and the declutter pass ran out of room. Sizing them relative to the
   map's own width keeps the spacing proportional at every window size. */
.rts-mp2 .rts-mp-map{container-type:inline-size;}
.rts-mp2 .pav{width:clamp(18px,2.85cqw,32px);height:clamp(18px,2.85cqw,32px);}
.rts-mp2 .rts-mp-runner.repeat .pav{width:clamp(20px,3.05cqw,34px);height:clamp(20px,3.05cqw,34px);}
.rts-mp2 .yav{width:clamp(24px,3.6cqw,40px);height:clamp(24px,3.6cqw,40px);}
.rts-mp2 .rts-mp-you.repeat .yav{width:clamp(28px,4.4cqw,48px);height:clamp(28px,4.4cqw,48px);}
.rts-mp2 .rts-mp-pin .tro-pin{width:clamp(18px,2.85cqw,32px);height:clamp(18px,2.85cqw,32px);}
.rts-mp2 .nm{font-size:clamp(6px,.78cqw,9px);}
.rts-mp2 .bub{font-size:clamp(6px,.78cqw,9px);}

/* the milestone drilldown header had Georgia old-style figures - "15" sat below the "K" */
.rts-mp-sheet, .rts-mp-sheet *{font-variant-numeric:lining-nums !important;font-feature-settings:"lnum" 1,"onum" 0 !important;}


/* 2026-09-14: the map was never filling its column. As a grid item it stretched to the ROW height
   (set by the side panels), and because it also has a fixed aspect-ratio the browser then derived
   its WIDTH from that height - so narrowing the side columns did nothing. align-items:start on the
   row plus an explicit width lets it fill the space it is actually given. */
.rts-mp2 .rts-mp-map{width:100%;}

/* 2026-09-14: removed two stale .rts-mp-body rules left over from earlier passes - being later in the file they were silently overriding the current column widths. */


/* ===== TITLE (2026-09-14) — built from Curtis's supplied HTML + the mockup in his image 5:
   small "The", oversized italic 42.2K, ornate caps for the rest, gold gradient, tagline under. ===== */
.rts-mp2 .rts-mp-title{font-family:'Cinzel',Georgia,serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.02em;line-height:1;text-align:center;margin:0;
  font-size:clamp(24px,3.1vw,52px);
  background:linear-gradient(180deg,#FBEFC4 0%,#F4D06F 38%,#D9A93B 62%,#A9721C 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#F4D06F;
  filter:drop-shadow(0 2px 0 rgba(120,80,20,.55)) drop-shadow(0 5px 12px rgba(0,0,0,.5));}
.rts-mp2 .rts-mp-title .t-the{font-size:.66em;letter-spacing:.06em;}
.rts-mp2 .rts-mp-title .t-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.42em;
  font-style:italic;font-weight:700;text-transform:none;letter-spacing:-.03em;}
.rts-mp2 .rts-mp-title .t-rest{font-variant:small-caps;text-transform:none;letter-spacing:.015em;}
.rts-mp2 .rts-mp-tag{text-align:center;margin:8px 0 0;color:#C9A355;
  font:600 clamp(8px,.72vw,12px)/1 'Public Sans',Arial,sans-serif;letter-spacing:.42em;text-transform:uppercase;}

/* ===== MILESTONE GROUPS column (2026-09-14) ===== */
/* trophy icons 25% smaller, and the name gets its own line so it is never truncated to "O..." */
.rts-mp2 .rts-mp-ms .tro{width:28px;height:28px;}
.rts-mp2 .rts-mp-msrow{flex-wrap:wrap;row-gap:2px;padding:6px 2px;}
.rts-mp2 .rts-mp-msrow .nm{flex:1 1 100%;order:5;min-width:0;white-space:normal;overflow:visible;
  text-overflow:clip;font-size:12px;padding-left:36px;color:#F3E6C8;line-height:1.25;}
.rts-mp2 .rts-mp-msrow .av{order:3;}
.rts-mp2 .rts-mp-msrow .chev{order:4;margin-left:auto;}
.rts-mp2 .rts-mp-msrow .badge{width:40px;}
.rts-mp2 .rts-mp-msrow .chev{margin-left:auto;}

/* ===== "+N more at this distance" marker (2026-09-14) ===== */
.rts-mp2 .rts-mp-runner.has-more{cursor:pointer;}
.rts-mp2 .rts-mp-runner.has-more .pav{border-color:#F0D28A;box-shadow:0 0 0 3px rgba(240,210,138,.45),0 4px 12px rgba(0,0,0,.6);}
.rts-mp2 .morecount{position:absolute;right:-6px;bottom:14px;background:linear-gradient(180deg,#F0D28A,#C9A355);
  color:#1b1400;font:700 9px/1 'Public Sans',Arial,sans-serif;padding:2px 5px;border-radius:999px;
  border:1px solid #7a5a1a;box-shadow:0 2px 6px rgba(0,0,0,.5);}
.rts-mp2 .rts-mp-runner{position:absolute;}


/* 2026-09-14: Around You names were truncating to "YOU - Cu..." / "Marcus L." at the narrower
   column width. Let the name wrap instead of clipping, and keep the distance pinned right. */
.rts-mp2 .rts-mp-around li{flex-wrap:wrap;row-gap:1px;}
.rts-mp2 .rts-mp-around li .nm{white-space:normal;overflow:visible;text-overflow:clip;
  flex:1 1 auto;min-width:0;font-size:12px;line-height:1.25;}
.rts-mp2 .rts-mp-around li .km{margin-left:auto;flex:0 0 auto;}
.rts-mp2 .rts-mp-card ol li .nm{white-space:normal;overflow:visible;text-overflow:clip;}


/* ===== 2026-09-14 (Curtis, round 5) ===== */
/* milestone pin is now trophy + label + a chevron showing it opens the members list */
.rts-mp2 .rts-mp-pin .chev{display:block;color:#F0D28A;font-size:9px;line-height:1;margin-top:1px;
  text-shadow:0 1px 2px rgba(0,0,0,.8);}
.rts-mp2 .rts-mp-pin:hover .tro-pin{border-color:#F0D28A;box-shadow:0 0 0 3px rgba(240,210,138,.4);}

/* the "+N others here" badge: clearly a different colour so it reads as a button, not a count */
.rts-mp2 .morecount{background:linear-gradient(180deg,#57C8FF,#1E7FD1);color:#04203a;
  border:1px solid #0d4f86;box-shadow:0 2px 6px rgba(0,0,0,.55);}
.rts-mp2 .rts-mp-runner.has-more .pav{border-color:#57C8FF;
  box-shadow:0 0 0 3px rgba(87,200,255,.45),0 4px 12px rgba(0,0,0,.6);}
.rts-mp2 .rts-mp-runner.has-more:hover .pav{box-shadow:0 0 0 4px rgba(87,200,255,.7),0 4px 14px rgba(0,0,0,.7);}

/* the members list used to sit at the very bottom of the page, far from what you clicked.
   It now opens as a panel anchored near the marker (position set in map2.js). */
.rts-mp2 .rts-mp-sheet.is-anchored{position:absolute;left:0;top:0;right:auto;bottom:auto;
  width:min(340px,86vw);max-height:340px;overflow:auto;z-index:40;
  border:1px solid #C9A355;border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.65);}


/* ===== COMPACT MEMBERS POPUP (2026-09-14, Curtis's image 2) ===== */
.rts-mp2 .rts-mp-pop{position:absolute;z-index:60;width:212px;max-height:236px;overflow:auto;
  background:linear-gradient(180deg,rgba(9,25,52,.97),rgba(5,16,36,.98));border:1px solid #C9A355;
  border-radius:8px;box-shadow:0 14px 40px rgba(0,0,0,.7);font-family:Georgia,serif;color:#fff;
  font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1,"onum" 0;}
.rts-mp2 .rts-mp-pop[hidden]{display:none;}
.rts-mp2 .rts-mp-pop .ph{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid rgba(201,163,85,.4);
  background:rgba(201,163,85,.08);position:sticky;top:0;}
.rts-mp2 .rts-mp-pop .ph span{color:#F0D28A;font:700 13px/1 Georgia,serif;letter-spacing:.06em;font-variant-numeric:lining-nums !important;font-feature-settings:"lnum" 1,"onum" 0 !important;} /* 2026-09-14: the font: shorthand was resetting the lining-nums set on the popup, so the header digits sat low again */
.rts-mp2 .rts-mp-pop .ph small{color:#F3E6C8;font:9px/1 'Public Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.8;}
.rts-mp2 .rts-mp-pop .px{margin-left:auto;background:none;border:0;color:#F0D28A;font-size:15px;line-height:1;cursor:pointer;padding:0 2px;}
.rts-mp2 .rts-mp-pop ol{list-style:none;margin:0;padding:3px 0;}
.rts-mp2 .rts-mp-pop li{display:flex;align-items:center;gap:6px;padding:3px 8px;font-size:10.5px;line-height:1.2;border-bottom:1px solid rgba(201,163,85,.14);}
.rts-mp2 .rts-mp-pop li:last-child{border-bottom:0;}
.rts-mp2 .rts-mp-pop li.cur{background:rgba(240,210,138,.10);}
.rts-mp2 .rts-mp-pop li b{width:12px;color:#F0D28A;font-size:9px;text-align:right;flex:none;}
.rts-mp2 .rts-mp-pop .pa{width:18px;height:18px;border-radius:50%;object-fit:cover;flex:none;border:1px solid #C9A355;background:#0d2a52;}
.rts-mp2 .rts-mp-pop .pa.ini{display:inline-flex;align-items:center;justify-content:center;color:#F0D28A;font:700 8px 'Public Sans',Arial,sans-serif;}
.rts-mp2 .rts-mp-pop .n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rts-mp2 .rts-mp-pop .k{color:#F0D28A;font-weight:700;flex:none;}
.rts-mp2 .rts-mp-pop .m{font-style:normal;background:#7a1a1a;color:#fff;font-size:7px;padding:1px 4px;border-radius:6px;flex:none;}
.rts-mp2 .rts-mp-pop .none{justify-content:center;color:#F3E6C8;opacity:.8;font-style:italic;}

/* 2026-09-14: old bottom sheet retired; hard-hidden so a cached script can never show it */
#rts-mp-sheet,.rts-mp-sheet{display:none !important;}

/* 2026-09-14: video modal is moved to <body> on open (map2.js); these keep it styled there too */
.rts-vid-modal{position:fixed;inset:0;z-index:99999;}
.rts-vid-modal[hidden]{display:none;}


/* 2026-09-14 (Curtis): PLAY button - gold filled like the survey button, and vertically level with it.
   It sat a few px low because it had its own line-height/padding and the SVG icon in the survey
   button gave that one a taller box; both now share one height and centre-align. */
.rts-mp2 .rts-mp-survey,.rts-mp2 .rts-mp-play{height:36px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;align-self:center;line-height:1;}
.rts-mp2 .rts-mp-play{background:linear-gradient(180deg,#F0D28A 0%,#C9A355 60%,#A9843C 100%);color:#1b1400;border:1.5px solid #7a5a1a;
  border-radius:7px;padding:0 20px;font:700 11px/1 'Public Sans','Helvetica Neue',Arial,sans-serif;letter-spacing:.16em;
  box-shadow:0 3px 10px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.45);text-shadow:0 1px 0 rgba(255,255,255,.35);}
.rts-mp2 .rts-mp-play:hover{background:linear-gradient(180deg,#F6DE9E 0%,#D4AE5C 60%,#B58E44 100%);}

.rts-mp2 .rts-mp-play{margin:0 !important;}  /* 2026-09-14: a leftover 10px top margin was sitting it below the survey button */

.rts-mp2 .rts-mp-pop li b,.rts-mp2 .rts-mp-pop .k{font-variant-numeric:lining-nums !important;font-feature-settings:"lnum" 1,"onum" 0 !important;}
