/* THE HOARD · system emblems — one unique animated symbol per named system.
   Each sits in a circular glow field, gently bobs, and carries a motion that
   means something: Gideon scans, Nyami undulates, Waves ping, Vault dials,
   Linda plots an edge, Legacy shimmers, Rooms pulse, Scan focuses.
   Pure SVG + CSS. Respects prefers-reduced-motion. */
.emblem{position:relative;width:100%;max-width:440px;aspect-ratio:1;margin:0 auto;display:flex;align-items:center;justify-content:center;animation:emBob 6s ease-in-out infinite;}
.emblem::before{content:"";position:absolute;width:82%;height:82%;border-radius:50%;background:radial-gradient(circle,var(--eglow,rgba(168,132,62,.24)),transparent 70%);}
.emblem svg{position:relative;width:74%;height:74%;overflow:visible;display:block;}
.emblem .ebadge{position:absolute;top:8%;right:10%;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;color:#F1AA9B;border:1px solid rgba(241,170,155,.5);border-radius:999px;padding:4px 10px;background:rgba(20,26,15,.5);}
@keyframes emBob{0%,100%{transform:translateY(-2%);}50%{transform:translateY(2%);}}
@keyframes emSpinSlow{to{transform:rotate(360deg);}}
@keyframes emSpinRev{to{transform:rotate(-360deg);}}
@keyframes emPulse{0%,100%{transform:scale(1);opacity:.85;}50%{transform:scale(1.12);opacity:1;}}
@keyframes emPing{0%{transform:scale(.28);opacity:.95;}75%{opacity:0;}100%{transform:scale(2.5);opacity:0;}}
@keyframes emScanY{0%,100%{transform:translateY(-42px);}50%{transform:translateY(42px);}}
@keyframes emFlow{to{stroke-dashoffset:-38;}}
@keyframes emSway{0%,100%{transform:rotate(-3deg);}50%{transform:rotate(3deg);}}
@keyframes emDraw{0%{stroke-dashoffset:320;}55%,100%{stroke-dashoffset:0;}}
@keyframes emBar{0%,100%{transform:scaleY(.55);}50%{transform:scaleY(1);}}
@keyframes emShine{0%{transform:translateX(-120%) rotate(12deg);}60%,100%{transform:translateX(240%) rotate(12deg);}}
@keyframes emNode{0%,100%{opacity:.35;r:5;}50%{opacity:1;}}
@keyframes emBlink{0%,92%,100%{transform:scaleY(1);}96%{transform:scaleY(.1);}}
/* shared helpers */
.em-spin{transform-origin:100px 100px;animation:emSpinSlow 12s linear infinite;}
.em-spin-rev{transform-origin:100px 100px;animation:emSpinRev 16s linear infinite;}
.em-ping{transform-origin:100px 100px;opacity:0;animation:emPing 3.6s ease-out infinite;}
.em-ping.p2{animation-delay:1.2s;}
.em-ping.p3{animation-delay:2.4s;}
.em-scan{animation:emScanY 2.6s ease-in-out infinite;}
.em-pulse{transform-origin:100px 100px;animation:emPulse 2.2s ease-in-out infinite;}
/* Nyami */
.ny-scale{animation:emFlow 2.6s linear infinite;}
.ny-body{transform-origin:100px 100px;animation:emSway 6s ease-in-out infinite;}
.ny-water{transform-origin:100px 100px;animation:emPulse 4.5s ease-in-out infinite;}
/* Linda */
.lin-bar{transform-box:fill-box;transform-origin:bottom;animation:emBar 2.4s ease-in-out infinite;}
.lin-bar.b2{animation-delay:.3s;}.lin-bar.b3{animation-delay:.6s;}.lin-bar.b4{animation-delay:.9s;}
.lin-edge{stroke-dasharray:320;animation:emDraw 4s ease-in-out infinite;}
.lin-dot{animation:emPulse 1.6s ease-in-out infinite;transform-origin:center;}
/* Legacy */
.leg-shine{animation:emShine 4.5s ease-in-out infinite;}
.leg-coin{transform-origin:100px 104px;animation:emPulse 3.4s ease-in-out infinite;}
/* Rooms */
.rm-node{animation:emNode 2.4s ease-in-out infinite;}
.rm-node.n2{animation-delay:.4s;}.rm-node.n3{animation-delay:.8s;}.rm-node.n4{animation-delay:1.2s;}.rm-node.n5{animation-delay:1.6s;}
/* Gideon eye */
.gd-eye{transform-box:fill-box;transform-origin:center;animation:emBlink 5s ease-in-out infinite;}
@media(prefers-reduced-motion:reduce){.emblem,.emblem *{animation:none!important;}}
