
/* Map geometry and avatar primitives, independent of page layout. */
.floor-slab{filter:url(#floorShadow)}
.room-wall-face{stroke:none}.room-wall-cap{fill:none;stroke-linecap:square}
.space-label{pointer-events:none;paint-order:stroke;stroke-linejoin:round;text-anchor:middle}
.landmark-label{pointer-events:none;text-anchor:middle}
.stairs-symbol{fill:none;stroke-linejoin:round}
.lift-symbol path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.marker-leader{fill:none}.lift-tag-text{text-anchor:middle}
.route-line,.route-underlay{fill:none;stroke-linecap:round;stroke-linejoin:round}
#traveler{pointer-events:none}#avatarRig path{stroke-linecap:round;stroke-linejoin:round}
#avatarLegFar{fill:none;stroke-width:4.8}#avatarLegNear{fill:none;stroke-width:5}
#avatarShoeFar,#avatarShoeNear{fill:none;stroke-width:4.2}
#avatarArmFar,#avatarArmNear{fill:none;stroke-width:4.5}
#elevatorCab path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.slab-bottom{fill:#b9c9bd;stroke:#b6c5b8;stroke-width:1}
.slab-side{fill:url(#slabSide);stroke:#aebfb1;stroke-width:.6}
.slab-surface{fill:url(#slabSurface);stroke:#fffef8;stroke-width:3.5;stroke-linejoin:round}
.space-fill{fill:url(#roomSurface);stroke:#cbd4c8;stroke-width:1.2}
.space-fill.kind-zone{fill:url(#hallSurface);stroke:#c8d5c8;stroke-width:1}
.space-fill.kind-zone.muted{fill:#f0f1e9;stroke:#e1e6da}
.space-fill.kind-lift{fill:#c0d9cd;stroke:#adcbbb}
.space-fill.kind-stairs{fill:#e9dbca;stroke:#d7cbb8}
.space-fill.kind-toilet{fill:#d8dfe1;stroke:#c5d1d3}
.space-fill.is-destination{fill:url(#arrivalSurface);stroke:#7aadd0;stroke-width:2}
.room-wall-face{fill:#b7c3b6;stroke:#a8b9a930;stroke-width:.6}
.room-wall-cap{stroke:#fffdf4;stroke-width:4;filter:drop-shadow(0 1px 1px #6a756449)}
.space-label{fill:#5b6d59;font-size:19px;font-weight:500;stroke:#f7faf17a;stroke-width:2}
.space-label.minor{fill:#778570;font-size:15px}.space-label.target{fill:#35769d}
.map-table{fill:#eae4d1;stroke:#fff9e8;stroke-width:1}.map-table-side{fill:#b5bda4;stroke:#a4b098;stroke-width:.7}
.map-chair{fill:#9eb8ae;stroke:#b5cfc3;stroke-width:.8}.map-chair-side{fill:#829f92}
.map-bench{fill:#c5c4aa;stroke:#e4e0c9;stroke-width:.7}.map-bench-side{fill:#a4b29e}
.service-desk{fill:#f7f1dd;stroke:#fffcf2;stroke-width:1}.service-desk-side{fill:#b7c9b3;stroke:#a3ba9c;stroke-width:.6}
.lift-symbol rect{fill:#79aa98;stroke:#eff8eb;stroke-width:1.6}.lift-symbol path{stroke:#f8fff3;stroke-width:1.7}
.stairs-symbol{stroke:#b8a58d;stroke-width:4}
.landmark-label{fill:#8c9f7f;font-size:15px;letter-spacing:1px}.landmark-label.service{fill:#91a288;font-size:13px}
.floor-heading rect{fill:#315c47;stroke:#ffffffb0;stroke-width:1}
.floor-tag-number{fill:#f0f6e9;font-size:26px;font-weight:650}
.floor-tag-label{fill:#6e8564;font-size:19px;letter-spacing:.5px}
.elevator-sign .poi-disc{fill:#fcfff4;stroke:#8baf98;stroke-width:1.5;filter:drop-shadow(0 3px 3px #325a3f1c)}
.elevator-sign use{fill:none;stroke:#4b846a;stroke-width:1.6}
.poi-stem{stroke:#8eaf96;stroke-width:1.4}
.poi-caption{fill:#fcfff5e8;stroke:#b9cdb3;stroke-width:1}
.elevator-sign text{fill:#5c8064;font-size:15px;font-weight:500}
.route-glow{fill:none;stroke:#42d395;stroke-width:24;opacity:.2;stroke-linecap:round;stroke-linejoin:round;filter:url(#softRouteGlow)}
.route-underlay{fill:none;stroke:#fcfff4;stroke-width:14;opacity:.95}
.route-line{stroke:#1aaf79;stroke-width:8;opacity:1}
.route-rim{fill:none;stroke:#7ff0b9;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:.65}
.route-chevrons{fill:none;stroke:#effff3;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.route-step.current .route-line{stroke:#06ac71;stroke-width:9}
.route-step.finished .route-line{stroke:#4eb88b;opacity:1}
.route-lift .route-line{stroke:#37c58e;stroke-width:10;stroke-dasharray:none;opacity:.85}
.route-lift .route-underlay{stroke-width:13;opacity:.6}
.route-lift .route-glow{opacity:.26}.route-lift .route-chevrons{stroke-width:2.3}
.lift-anchor{fill:#1fbc83;stroke:#fffde9;stroke-width:3}
.lift-tag{fill:#fffff3ed;stroke:#9ec5a5;stroke-width:1.2}.lift-tag-text{fill:#49815a;font-size:15px}
.marker-end-pin{fill:url(#navigationBlue);stroke:#7bc3f9;stroke-width:.7}
.marker-end-side{fill:#1763a9}
.marker-start-pin{fill:#ba9357;stroke:#e3c898;stroke-width:.7}
.marker-halo{fill:#52a9e62a;stroke:#7cbae865;stroke-width:1.2}
.marker-orbit{fill:none;stroke:#4c9ed55c;stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:pinBreath 2.3s ease-in-out infinite;animation-play-state:paused}
.start-marker .marker-halo{fill:#cba35b20;stroke:#cba35b40}.start-marker .marker-orbit{stroke:#cba35b40}
.marker-leader{fill:none;stroke:#8daec075;stroke-width:1.2}.start-marker .marker-leader{stroke:#bbac8a90}
.marker-card{filter:drop-shadow(0 4px 6px #3b60511c)}
.marker-card>rect:first-child{fill:#fffff8f5;stroke:#dbe6d1;stroke-width:1}
.marker-accent{fill:#3796d5}.start-marker .marker-accent{fill:#ba9357}
.marker-label{font-size:16px;fill:#3f685e;font-weight:600}.marker-sub{font-size:11px;fill:#8c9f85}
.goal-marker.arrived .marker-halo{fill:#429fdf49;stroke:#549fd4;stroke-width:2}
.walker-beacon{fill:#499fdd20;stroke:#6eb6ea70;stroke-width:1.4}
#avatarShadow{fill:#225f742b;stroke:#ffffffae;stroke-width:1}
#avatarRig{transform:scale(1.16);filter:drop-shadow(0 2px 1px #2a638926)}
#avatarTorso{fill:url(#walkerJacket);stroke:#2179b0;stroke-width:.6}
#avatarArmFar{stroke:#297eae}#avatarArmNear{stroke:#51a7df}
#avatarLegFar{stroke:#315874}#avatarLegNear{stroke:#486f8b}
#avatarShoeFar,#avatarShoeNear{stroke:#284c64}
#avatarHead,#avatarHandNear,#avatarHandFar,#avatarNose{fill:#edc39f}
#avatarHair{fill:#314e60}
#elevatorCab rect{fill:#c3eaf31c;stroke:#73b5ca;stroke-dasharray:0;stroke-width:1.3}
#elevatorCab path{stroke:#428fa8}
.playing .marker-orbit{animation-play-state:running}
@keyframes pinBreath{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.13)}}
.scene-floor{animation:floorReveal .3s ease-out both}
@keyframes floorReveal{from{opacity:.4}to{opacity:1}}

/* Map lettering uses the same offline variable font as the interface. */
.space-label{font-size:21px;font-weight:450;fill:#4e584e;stroke:#fffdf58c;stroke-width:2.5}
.space-label.minor{font-size:17px;fill:#626e64;font-weight:430}
.floor-heading rect{fill:#f6f0e1;stroke:#d9c9a2}
.floor-tag-number{font-size:28px;fill:#8e743e;font-weight:550}
.floor-tag-label{font-size:23px;fill:#646b5f;letter-spacing:.3px;font-weight:450}
.marker-label{font-size:18px;fill:#424c48;font-weight:500}
.marker-sub{font-size:12px;fill:#778476;font-weight:400}
.elevator-sign text{font-size:16px;font-weight:450}
.lift-tag-text{font-size:16px;font-weight:450}
.landmark-label{font-size:17px;fill:#818b77;letter-spacing:0}
.landmark-label.service{font-size:14px;fill:#78866c}
@media(prefers-reduced-motion:reduce){.scene-floor,.marker-orbit{animation:none}}

.space-label.space-labor-rights{font-size:14px}
