.training-map-shell{overflow:hidden;border:1px solid color-mix(in oklab,var(--border) 72%,transparent);border-radius:clamp(1.25rem,3vw,2rem);background:#fff;box-shadow:var(--shadow-soft)}.map-stage{position:relative;isolation:isolate;min-height:clamp(40rem,62vw,52rem);overflow:hidden;background:radial-gradient(circle at 52% 40%,rgb(208 32 46 / 7%),transparent 35%),linear-gradient(150deg,#fff,#f7f7f8);color:#141416}.map-stage:after{position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 25%,rgb(255 255 255 / 75%) 50%,transparent 75%);content:"";transform:translate(-100%)}.map-stage[data-active=true]:after{animation:map-sheen 1.4s .3s ease-out both}.map-stage svg{position:absolute;inset:5.5rem 0 5.25rem;width:100%;height:calc(100% - 10.75rem);overflow:visible}.map-kicker,.map-count,.map-detail,.map-caption{position:absolute;z-index:2;font-family:var(--font-body);letter-spacing:.02em}.map-kicker{top:1.6rem;left:1.6rem;display:flex;align-items:center;gap:.7rem;font-size:.8rem;font-weight:650;text-transform:uppercase}.map-kicker span{width:.65rem;height:.65rem;border-radius:999px;background:var(--primary);box-shadow:0 0 0 .35rem #d0202e2e}.map-caption{right:1.6rem;bottom:1.55rem;color:#1414166b;font-size:.75rem;text-transform:uppercase}.map-count{top:1.25rem;right:1.5rem;display:flex;align-items:baseline;gap:.55rem;padding:.55rem .85rem;border:1px solid rgb(20 20 22 / 8%);border-radius:999px;background:#ffffffc7;box-shadow:0 8px 24px #1414160f;backdrop-filter:blur(14px)}.map-count strong{color:var(--primary);font-size:1.15rem}.map-count span{color:#14141699;font-size:.73rem}.map-detail{bottom:1.25rem;left:1.5rem;width:min(28rem,calc(100% - 9rem));padding:.9rem 1rem;border:1px solid rgb(20 20 22 / 8%);border-radius:1rem;background:#ffffffdb;box-shadow:0 12px 36px #14141614;backdrop-filter:blur(18px)}.map-detail span{display:block;color:var(--primary);font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.map-detail strong{display:block;margin-top:.15rem;font-size:1rem}.map-detail p{margin:.18rem 0 0;color:#1414169e;font-size:.77rem;line-height:1.4}.country-shadow{fill:#14141629;filter:blur(20px);transform:translateY(15px)}.country-surface{fill:#fff}.country-outline{fill:none;stroke:var(--primary);stroke-linejoin:round;stroke-width:3.5;filter:drop-shadow(0 3px 5px rgb(208 32 46 / 18%))}.country-grid{color:var(--primary);pointer-events:none}.coverage-rings circle{fill:none;stroke:#d0202e1a;stroke-width:1.5;stroke-dasharray:4 9}.training-route-base,.training-route{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:opacity .26s ease,stroke-width .26s ease}.training-route-base{stroke:#d0202e0f;stroke-width:4}.training-route{stroke:var(--primary);stroke-dasharray:.012 .028;stroke-width:1.8;opacity:.24}.map-stage[data-active=true] .training-route{animation:route-draw 1.25s var(--route-delay) cubic-bezier(.35,0,.15,1) both}.training-route.is-selected{stroke-width:3.2;opacity:1;filter:drop-shadow(0 0 5px rgb(208 32 46 / 42%))}.training-route-base.is-selected{stroke-width:8;opacity:.8}.route-runner{display:none;fill:var(--primary);filter:url(#pin-glow)}.map-stage[data-active=true] .route-runner{display:block}.map-waypoint{color:var(--primary);transform-box:fill-box;transform-origin:center;transition:filter .22s ease}.map-stage[data-active=true] .map-waypoint{animation:waypoint-arrive .62s var(--waypoint-delay) cubic-bezier(.2,.9,.25,1.25) both}.waypoint-pulse{fill:none;stroke:currentColor;stroke-width:1.8}.map-stage[data-active=true] .waypoint-pulse{animation:waypoint-pulse 2.8s calc(var(--waypoint-delay) + .62s) ease-out infinite}.waypoint-pin{fill:#fff;stroke:currentColor;stroke-width:3;transition:fill .22s ease}.map-waypoint.headquarters .waypoint-pin,.map-waypoint.is-selected .waypoint-pin{fill:currentColor}.map-waypoint.is-selected{filter:url(#pin-glow)}.waypoint-core{fill:currentColor}.map-waypoint.headquarters .waypoint-core,.map-waypoint.is-selected .waypoint-core{fill:#fff}.map-label{fill:#141416;font-family:var(--font-body);font-size:15px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-width:5px;opacity:0;transition:opacity .18s ease}.map-waypoint.headquarters .map-label,.map-waypoint.is-selected .map-label{opacity:1}.training-map-places{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;border-top:1px solid var(--border);list-style:none}.training-map-places li{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.training-map-places button{display:flex;width:100%;min-height:4.25rem;align-items:center;gap:.8rem;padding:.7rem .8rem;border:0;background:transparent;color:var(--foreground);font:inherit;text-align:left;cursor:pointer;transition:background-color .18s ease,color .18s ease}.training-map-places button:hover,.training-map-places button:focus-visible,.training-map-places button.active{background:#d0202e0d;outline:none}.training-map-places button.active{color:var(--primary)}.training-map-places button>span:first-child{width:.55rem;height:.55rem;flex:0 0 auto;border-radius:999px;background:var(--primary);box-shadow:0 0 0 .25rem color-mix(in oklab,var(--primary) 14%,transparent)}.training-map-places button>span:last-child{display:grid;gap:.15rem}.training-map-places strong{font-size:.82rem}.training-map-places small,.map-credit{color:var(--muted-foreground);font-size:.72rem}.map-credit{margin:0;padding:.7rem 1rem;text-align:right}@keyframes route-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes waypoint-arrive{0%{opacity:0;transform:translateY(-18px) scale(.72)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes waypoint-pulse{0%{opacity:.7;transform:scale(.45)}75%,to{opacity:0;transform:scale(1.7)}}@keyframes map-sheen{to{transform:translate(100%)}}@media(max-width:900px){.training-map-places{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.map-stage{min-height:31rem}.map-stage svg{inset:5.25rem -5% 8rem;width:110%;height:calc(100% - 13.25rem)}.map-kicker{top:1.2rem;left:1rem;font-size:.7rem}.map-count{top:3.25rem;right:auto;left:1rem}.map-count span{display:none}.map-detail{right:1rem;bottom:1rem;left:1rem;width:auto}.map-caption,.map-label{display:none}.training-map-places{grid-template-columns:repeat(2,minmax(0,1fr))}.training-map-places button{min-height:4.1rem;padding:.7rem}}@media(prefers-reduced-motion:reduce){.map-stage[data-active=true]:after,.map-stage[data-active=true] .training-route,.map-stage[data-active=true] .map-waypoint,.map-stage[data-active=true] .waypoint-pulse,.coverage-rings circle{animation:none}.map-stage[data-active=true] .route-runner{display:none}}
