/* 4.5:1 contrast (Marshall, Oct 26): every logo line >= 4.5:1 on --bg in both themes.
   --ph-dim is now fixed SITE-WIDE in style.css (Marshall 2:39 PM: "use it site-wide"):
   Day #5fa9d3 = 7.31:1, Night #d05a47 = 5.03:1, so the old logo-scoped override is gone.
   --ph 9.44 / 7.19, --warn 10.55 / 10.84. Resting opacity never below .7. */
/* Option D, Acquire + Orbit. Colors only from site tokens; hex = standalone fallback.
   Story: globe draws in (0-1.25s) -> amber dot locks on the surface (1.1s) ->
   dot lifts off the globe while the ring unspools from the same point (1.6-2.5s)
   -> the dot is now the satellite, orbiting every 14s, passing behind the globe. */
.mf-d .d-limb{fill:var(--bg,#0e1114);stroke:var(--ph,#4cc2ff)}
.mf-d .d-eq,.mf-d .d-m1,.mf-d .d-rf{stroke:var(--ph,#4cc2ff)}
.mf-d .d-lat,.mf-d .d-m2,.mf-d .d-rb{stroke:var(--ph-dim,#5fa9d3)}
.mf-d .d-sat{fill:var(--warn,#ffb300)}
/* static / reduced-motion pose comes from the SVG transform attributes */
@media (prefers-reduced-motion:no-preference){
.mf-d .d-limb,.mf-d .d-eq,.mf-d .d-m1,.mf-d .d-m2,.mf-d .d-lat,.mf-d .d-rf,.mf-d .d-rb{stroke-dasharray:1 2;stroke-dashoffset:1.02;animation:mf-d-draw .7s cubic-bezier(.65,0,.35,1) forwards}
.mf-d .d-eq{animation-duration:.4s;animation-delay:.35s}
.mf-d .d-m1{animation-duration:.55s;animation-delay:.55s}
.mf-d .d-m2,.mf-d .d-lat{animation-duration:.55s;animation-delay:.7s}
.mf-d .d-rf,.mf-d .d-rb{animation-duration:.9s;animation-delay:1.6s}
.mf-d .d-sat{transform-box:fill-box;transform-origin:center}
.mf-d .d-front{animation:mf-d-front 14s step-end 1.6s infinite backwards}
.mf-d .d-sat{animation:mf-d-pulse 2.4s ease-in-out 2.5s infinite}
.mf-d .d-lock{animation:mf-d-lock .45s cubic-bezier(.2,.7,.2,1) 1.1s backwards,mf-d-pulse 2.4s ease-in-out 2.5s infinite}
.mf-d .d-back{animation:mf-d-back 14s step-end 1.6s infinite backwards}
.mf-d .d-lift{animation:mf-d-lift .9s cubic-bezier(.3,0,.2,1) 1.6s both}
.mf-d .d-sx{animation:mf-d-x 14s linear 1.6s infinite backwards}
.mf-d .d-sy{animation:mf-d-y 14s linear 1.6s infinite backwards}
.mf-d.is-mini .d-lift{animation-name:mf-d-lift-m}
.mf-d.is-mini .d-sx{animation-name:mf-d-x-m}
.mf-d.is-mini .d-sy{animation-name:mf-d-y-m}
/* Once per visit (Marshall 2:40 PM): logo-once.js adds html.mf-seen after the first
   load in a session. Skip the draw-in, lock and lift; go straight to the orbit. */
.mf-seen .mf-d .d-limb,.mf-seen .mf-d .d-eq,.mf-seen .mf-d .d-m1,.mf-seen .mf-d .d-m2,.mf-seen .mf-d .d-lat,.mf-seen .mf-d .d-rf,.mf-seen .mf-d .d-rb{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
.mf-seen .mf-d .d-lift{animation:none;transform:none}
.mf-seen .mf-d .d-lock,.mf-seen .mf-d .d-sat{animation:mf-d-pulse 2.4s ease-in-out infinite}
.mf-seen .mf-d .d-front,.mf-seen .mf-d .d-back,.mf-seen .mf-d .d-sx,.mf-seen .mf-d .d-sy{animation-delay:0s}
}
@keyframes mf-d-draw{to{stroke-dashoffset:0}}
@keyframes mf-d-lock{0%{opacity:0;transform:scale(2.4)}100%{opacity:1;transform:scale(1)}}
@keyframes mf-d-pulse{0%,100%{opacity:1}50%{opacity:.7}}
@keyframes mf-d-front{0%{opacity:1}50%{opacity:0}}
@keyframes mf-d-back{0%{opacity:0}50%{opacity:1}}
@keyframes mf-d-lift{from{transform:translate(87.13px,-51.4px)}to{transform:translate(0,0)}}
@keyframes mf-d-x{0%{transform:translate(-114px,0);animation-timing-function:cubic-bezier(.12,0,.39,0)}25%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}50%{transform:translate(114px,0);animation-timing-function:cubic-bezier(.12,0,.39,0)}75%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}100%{transform:translate(-114px,0)}}
@keyframes mf-d-y{0%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}25%{transform:translate(0,30px);animation-timing-function:cubic-bezier(.12,0,.39,0)}50%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}75%{transform:translate(0,-30px);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:translate(0,0)}}
@keyframes mf-d-lift-m{from{transform:translate(11.29px,-5.04px)}to{transform:translate(0,0)}}
@keyframes mf-d-x-m{0%{transform:translate(-14px,0);animation-timing-function:cubic-bezier(.12,0,.39,0)}25%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}50%{transform:translate(14px,0);animation-timing-function:cubic-bezier(.12,0,.39,0)}75%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}100%{transform:translate(-14px,0)}}
@keyframes mf-d-y-m{0%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}25%{transform:translate(0,3.6px);animation-timing-function:cubic-bezier(.12,0,.39,0)}50%{transform:translate(0,0);animation-timing-function:cubic-bezier(.61,1,.88,1)}75%{transform:translate(0,-3.6px);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:translate(0,0)}}
/* prefers-reduced-motion: reduce -> none of the rules above apply: globe and ring fully drawn, satellite parked front-right, no pulse. */
