/* Exact map artwork, background, positions and staggered pulse families from the supplied reference. */
.hum-showcase .hum-viewport{background:#f7f7f9}
.hum-splash{position:absolute;inset:0;display:block;overflow:hidden;container-type:inline-size}
.hum-map-art{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:right center;opacity:1;transition:opacity .65s var(--motion-fill)!important}
.hum-map-points,.hum-creators{position:absolute;inset:0;display:block;pointer-events:none}
.hum-map-points{opacity:1;transition:opacity .35s linear!important}
.hum-map-point{position:absolute;left:calc(var(--x)*100%/192);top:calc(var(--y)*100%/415);display:block;width:2.083333%;aspect-ratio:1;transform:translate(-50%,-50%)}
.hum-map-point::before,.hum-map-point::after{content:"";position:absolute;inset:0;border-radius:50%;background:#fa0046;transform-origin:center;will-change:transform,opacity}
.hum-map-point::before{animation:hum-map-ring var(--cycle) var(--phase) ease-in-out infinite!important}
.hum-map-point::after{animation:hum-map-dot var(--cycle) var(--phase) ease-in-out infinite!important}
/* The last avatar settles after its 1.2s delay and .4s entrance.
   Unassigned points then disappear; leaving/replaying restores them immediately. */
.hum-map-point-unassigned{visibility:visible;transition:none!important}
.hum-showcase.is-creators .hum-map-point-unassigned{visibility:hidden;transition:visibility 0s linear 1.6s!important}
@keyframes hum-map-ring{0%,70%,100%{transform:scale(1);opacity:0}25%{transform:scale(3);opacity:.22}48%{transform:scale(1.7);opacity:.08}}
@keyframes hum-map-dot{0%,70%,100%{transform:scale(.9);opacity:.62}25%{transform:scale(1.6);opacity:1}48%{transform:scale(1.15);opacity:.85}}

.hum-connections{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;opacity:0;transition:opacity .25s linear!important}
.hum-connection-paths path{stroke-dasharray:1;stroke-dashoffset:1;opacity:.68}
.hum-showcase.is-connecting .hum-connections{opacity:1}
.hum-showcase.is-connecting .hum-connection-paths path{animation:hum-route-draw .85s var(--motion-ease) both!important}
.hum-showcase.is-connecting .hum-connection-paths path:nth-child(2){animation-delay:.13s!important}
.hum-showcase.is-connecting .hum-connection-paths path:nth-child(3){animation-delay:.22s!important}
.hum-showcase.is-connecting .hum-connection-paths path:nth-child(4){animation-delay:.32s!important}
.hum-showcase.is-connecting .hum-connection-paths path:nth-child(5){animation-delay:.16s!important}
.hum-contribution-signals{opacity:0}
@keyframes hum-route-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

.hum-creator{position:absolute;left:calc(var(--x)*100%/192);top:calc(var(--y)*100%/415);display:block;width:20.833333%;aspect-ratio:1;transform:translate(-50%,-35%) scale(.18);opacity:0;transition:opacity .24s linear,transform .4s var(--motion-ease)!important}
.hum-creator-portrait{position:absolute;inset:0;display:block;border:2px solid #fff;border-radius:50%;background-image:url('assets/hum-creator-portraits.png');background-size:300% 100%;background-position:var(--portrait) 50%;box-shadow:0 3px 9px #24212a20}
.hum-creator-added .hum-creator-portrait{background-image:url('assets/hum-creator-portraits-extra.png');background-size:200% 100%}
.hum-creator-tool{position:absolute;right:-8px;bottom:-7px;display:grid;place-items:center;width:24px;height:24px;border:1px solid #ebe8ed;border-radius:8px;background:#fffffff5;box-shadow:0 2px 5px #33283812;font:16px/1 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;transform-origin:60% 80%}
.hum-showcase.is-creators .hum-creator{transform:translate(-50%,-50%) scale(1);opacity:1;transition-delay:var(--creator-delay)!important}
.hum-showcase.is-connecting .hum-creator-tool{animation:hum-contributor-play .8s var(--creator-delay) ease-in-out 2!important}
@keyframes hum-contributor-play{0%,100%{transform:rotate(0)}35%{transform:rotate(-8deg) translateY(-1px)}70%{transform:rotate(5deg)}}

.hum-showcase.is-gathering .hum-map-art{opacity:0}
.hum-showcase.is-gathering .hum-map-points{opacity:0}
.hum-showcase.is-gathering .hum-creator{opacity:0;transform:translate(-50%,-50%) scale(.3);transition-delay:0s!important}
.hum-showcase.is-gathering .hum-connection-paths path{opacity:1;animation:none!important;stroke-dashoffset:0;transition:opacity .5s linear!important}
.hum-splash-idle-title{display:none}
.hum-splash-title,.hum-splash-tagline{position:absolute;left:50%;display:block;opacity:0;transform:translate(-50%,8px);transition:opacity .45s linear,transform .5s var(--motion-ease)!important;text-align:center}
.hum-splash-title{top:49.5%;color:#39343a;font-size:44px;font-weight:700;line-height:1;letter-spacing:-2px}
.hum-splash-tagline{top:64%;width:calc(100% - 22px);color:#817b83;font-size:14px;font-weight:400;line-height:1.45;letter-spacing:-.2px}
.hum-showcase.is-finished .hum-splash-title,.hum-showcase.is-finished .hum-splash-tagline{opacity:1;transform:translate(-50%,0)}
.hum-showcase.is-finished .hum-splash-tagline{transition-delay:.16s!important}
.hum-showcase:not(.is-engaged) .hum-creator,.hum-showcase:not(.is-engaged) .hum-splash-title,.hum-showcase:not(.is-engaged) .hum-splash-tagline{transition-duration:.18s!important;transition-delay:0s!important}
.hum-showcase.is-paused .hum-map-point::before,.hum-showcase.is-paused .hum-map-point::after,.hum-showcase.is-paused .hum-creator-tool{animation-play-state:paused!important}
@media(max-width:700px){.hum-creator-tool{width:21px;height:21px;font-size:14px;right:-7px;bottom:-6px}.hum-splash-title{font-size:38px}.hum-splash-tagline{font-size:14px;line-height:1.4;width:calc(100% - 16px)}}
/* Keep the explicitly requested, small ambient pulse in both motion modes.
   Reduced motion still removes the larger hover movements below. */
@media(prefers-reduced-motion:reduce){.hum-showcase.is-creators .hum-map-point-unassigned{transition-delay:1.4s!important}.hum-showcase.is-connecting .hum-creator-tool,.hum-showcase.is-connecting .hum-connection-paths path{animation:none!important}.hum-showcase.is-connecting .hum-connection-paths path{stroke-dashoffset:0}.hum-creator,.hum-splash-title,.hum-splash-tagline{transition:opacity .2s linear!important}}
