#emoda-boot-loader {
  position: fixed; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 36px;
  overflow: hidden;
  z-index: 9999;
  font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  transition: opacity 0.3s ease-out;
  background:
    radial-gradient(circle at 50% 42%, rgba(93, 186, 71, 0.22) 0%, transparent 55%),
    radial-gradient(circle at 78% 108%, rgba(93, 186, 71, 0.14) 0%, transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #f5f7fa 55%, #e8edf4 100%);
}
#emoda-boot-loader.is-hiding { opacity: 0; pointer-events: none; }

#emoda-boot-loader .ebl-rays {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 0; height: 0;
  border-radius: 50%;
  pointer-events: none;
  box-shadow:
    0 0 0 20px rgba(14, 35, 72, 0.05),
    0 0 0 50px rgba(14, 35, 72, 0.04),
    0 0 0 100px rgba(14, 35, 72, 0.035),
    0 0 0 150px rgba(14, 35, 72, 0.03),
    0 0 0 200px rgba(14, 35, 72, 0.025),
    0 0 0 250px rgba(14, 35, 72, 0.02),
    0 0 0 300px rgba(14, 35, 72, 0.015),
    0 0 0 350px rgba(14, 35, 72, 0.01),
    0 0 100px 400px rgba(14, 35, 72, 0.005);
}

#emoda-boot-loader .ebl-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

#emoda-boot-loader .ebl-corner {
  position: absolute;
  top: 24px;
  z-index: 3;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: rgba(11, 18, 32, 0.32);
  pointer-events: none;
}
#emoda-boot-loader .ebl-corner--tl { left: 28px; }
#emoda-boot-loader .ebl-corner--tr { right: 28px; }
@media (max-width: 768px) {
  #emoda-boot-loader .ebl-corner { display: none; }
}

#emoda-boot-loader .ebl-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  user-select: none;
}
#emoda-boot-loader .ebl-brand-name {
  font-size: clamp(3.2rem, 2rem + 6vw, 6.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #ffffff;
  line-height: 1;
}
#emoda-boot-loader .ebl-brand-e {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  background: #5dba47;
  color: #ffffff;
  vertical-align: baseline;
  line-height: 1;
  box-shadow: 0 0 32px rgba(93, 186, 71, 0.6);
}
@media (max-width: 768px) {
  #emoda-boot-loader .ebl-brand-e { box-shadow: none; }
}
#emoda-boot-loader .ebl-brand-e::before {
  content: '';
  position: absolute;
  top: -0.42em;
  left: 0.04em;
  width: 0.3em;
  height: 0.3em;
  border-radius: 50%;
  background: #5dba47;
  box-shadow: 0 0 12px rgba(93, 186, 71, 0.7);
}
#emoda-boot-loader .ebl-brand-moda {
  padding-left: 0.08em;
}
#emoda-boot-loader .ebl-brand-name {
  line-height: 1;
  padding-top: 0.5em;
}
#emoda-boot-loader .ebl-brand-tag {
  font-size: clamp(1rem, 0.7rem + 0.8vw, 1.5rem);
  font-weight: 700;
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: #5dba47;
  text-shadow: 0 0 22px rgba(93, 186, 71, 0.6);
  padding-left: 0.5em;
}

#emoda-boot-loader .microchip {
  display: block;
  width: 12em;
  height: auto;
  color: #5dba47;
}
#emoda-boot-loader .microchip__center,
#emoda-boot-loader .microchip__dot,
#emoda-boot-loader .microchip__line,
#emoda-boot-loader .microchip__lines,
#emoda-boot-loader .microchip__spark,
#emoda-boot-loader .microchip__wave {
  animation-duration: 5s;
  animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
  animation-iteration-count: infinite;
  will-change: transform, opacity, stroke-dashoffset;
}
#emoda-boot-loader .microchip__core,
#emoda-boot-loader .microchip__dot { fill: #5dba47; }
#emoda-boot-loader .microchip__center,
#emoda-boot-loader .microchip__wave { transform-origin: 25px 25px; }
#emoda-boot-loader .microchip__center { animation-name: ebl-center-scale; }

#emoda-boot-loader .microchip__dot--1 { animation-name: ebl-dot-scale1; transform-origin: 3px 38px; }
#emoda-boot-loader .microchip__dot--2 { animation-name: ebl-dot-scale2; transform-origin: 3px 54px; }
#emoda-boot-loader .microchip__dot--3 { animation-name: ebl-dot-scale3; transform-origin: 3px 70px; }
#emoda-boot-loader .microchip__dot--4 { animation-name: ebl-dot-scale4; transform-origin: 3px 3px; }
#emoda-boot-loader .microchip__dot--5 { animation-name: ebl-dot-scale5; transform-origin: 20px 3px; }
#emoda-boot-loader .microchip__dot--6 { animation-name: ebl-dot-scale6; transform-origin: 3px 30px; }
#emoda-boot-loader .microchip__dot--7 { animation-name: ebl-dot-scale7; transform-origin: 37px 3px; }
#emoda-boot-loader .microchip__dot--8 { animation-name: ebl-dot-scale8; transform-origin: 54px 3px; }
#emoda-boot-loader .microchip__dot--9 { animation-name: ebl-dot-scale9; transform-origin: 71px 3px; }

#emoda-boot-loader .microchip__line { stroke: #5dba47; }
#emoda-boot-loader .microchip__line--1 { animation-name: ebl-line-draw1; }
#emoda-boot-loader .microchip__line--2 { animation-name: ebl-line-draw2; }
#emoda-boot-loader .microchip__line--3 { animation-name: ebl-line-draw3; }
#emoda-boot-loader .microchip__line--4 { animation-name: ebl-line-draw4; }
#emoda-boot-loader .microchip__line--5 { animation-name: ebl-line-draw5; }
#emoda-boot-loader .microchip__line--6 { animation-name: ebl-line-draw6; }
#emoda-boot-loader .microchip__line--7 { animation-name: ebl-line-draw7; }
#emoda-boot-loader .microchip__line--8 { animation-name: ebl-line-draw8; }
#emoda-boot-loader .microchip__line--9 { animation-name: ebl-line-draw9; }

#emoda-boot-loader .microchip__lines {
  animation-name: ebl-lines-scale;
  transform-origin: 54px 54px;
}

#emoda-boot-loader .microchip__spark,
#emoda-boot-loader .microchip__wave {
  animation-timing-function: linear;
  stroke: #a8e09a;
}
#emoda-boot-loader .microchip__spark--1 { animation-name: ebl-spark1; }
#emoda-boot-loader .microchip__spark--2 { animation-name: ebl-spark2; }
#emoda-boot-loader .microchip__spark--3 { animation-name: ebl-spark3; }
#emoda-boot-loader .microchip__spark--4 { animation-name: ebl-spark4; }
#emoda-boot-loader .microchip__spark--5 { animation-name: ebl-spark5; }
#emoda-boot-loader .microchip__spark--6 { animation-name: ebl-spark6; }
#emoda-boot-loader .microchip__spark--7 { animation-name: ebl-spark7; }
#emoda-boot-loader .microchip__spark--8 { animation-name: ebl-spark8; }
#emoda-boot-loader .microchip__spark--9 { animation-name: ebl-spark9; }
#emoda-boot-loader .microchip__wave--1 { animation-name: ebl-wave-scale1; }
#emoda-boot-loader .microchip__wave--2 { animation-name: ebl-wave-scale2; }

@keyframes ebl-center-scale {
  from, to { transform: scale(0); }
  12.5%, 75% { transform: scale(1); }
}
@keyframes ebl-dot-scale1 {
  from, 20%, 81.25%, to { transform: scale(0); }
  32.5%, 68.75% { transform: scale(1); }
}
@keyframes ebl-dot-scale2 {
  from, 10.5%, 87.5%, to { transform: scale(0); }
  23%, 75% { transform: scale(1); }
}
@keyframes ebl-dot-scale3 {
  from, 20%, 81.25%, to { transform: scale(0); }
  32.5%, 68.75% { transform: scale(1); }
}
@keyframes ebl-dot-scale4 {
  from, 20%, 81.25%, to { transform: scale(0); }
  32.5%, 68.75% { transform: scale(1); }
}
@keyframes ebl-dot-scale5 {
  from, 11.5%, 87.5%, to { transform: scale(0); }
  24%, 75% { transform: scale(1); }
}
@keyframes ebl-dot-scale6 {
  from, 14.5%, 85%, to { transform: scale(0); }
  27%, 72.5% { transform: scale(1); }
}
@keyframes ebl-dot-scale7 {
  from, 20%, 81.25%, to { transform: scale(0); }
  32.5%, 68.75% { transform: scale(1); }
}
@keyframes ebl-dot-scale8 {
  from, 11%, 87.5%, to { transform: scale(0); }
  23.5%, 75% { transform: scale(1); }
}
@keyframes ebl-dot-scale9 {
  from, 20%, 81.25%, to { transform: scale(0); }
  32.5%, 68.75% { transform: scale(1); }
}
@keyframes ebl-line-draw1 {
  from, 93.75%, to { stroke-dashoffset: 59; }
  25%, 68.75% { stroke-dashoffset: 17; }
}
@keyframes ebl-line-draw2 {
  from, 93.75%, to { stroke-dashoffset: 42; }
  25%, 68.75% { stroke-dashoffset: 0; }
}
@keyframes ebl-line-draw3 {
  from, 93.75%, to { stroke-dashoffset: 59; }
  25%, 68.75% { stroke-dashoffset: 17; }
}
@keyframes ebl-line-draw4 {
  from, 93.75%, to { stroke-dashoffset: 78; }
  25%, 68.75% { stroke-dashoffset: 18; }
}
@keyframes ebl-line-draw5 {
  from, 93.75%, to { stroke-dashoffset: 60; }
  25%, 68.75% { stroke-dashoffset: 0; }
}
@keyframes ebl-line-draw6 {
  from, 93.75%, to { stroke-dashoffset: 91; }
  25%, 68.75% { stroke-dashoffset: 31; }
}
@keyframes ebl-line-draw7 {
  from, 93.75%, to { stroke-dashoffset: 60; }
  25%, 68.75% { stroke-dashoffset: 17; }
}
@keyframes ebl-line-draw8 {
  from, 93.75%, to { stroke-dashoffset: 43; }
  25%, 68.75% { stroke-dashoffset: 0; }
}
@keyframes ebl-line-draw9 {
  from, 93.75%, to { stroke-dashoffset: 60; }
  25%, 68.75% { stroke-dashoffset: 17; }
}
@keyframes ebl-lines-scale {
  from { opacity: 1; transform: scale(0); }
  12.5%, 75% { opacity: 1; transform: scale(1); }
  93.75%, to { opacity: 0; transform: scale(0.5); }
}
@keyframes ebl-spark1 {
  from, 27.5% { stroke-dashoffset: 59; }
  50%, 52.5% { stroke-dashoffset: -25; }
  75%, to { stroke-dashoffset: -109; }
}
@keyframes ebl-spark2 {
  from, 27.5% { stroke-dashoffset: 42; }
  50%, 52.5% { stroke-dashoffset: -42; }
  75%, to { stroke-dashoffset: -126; }
}
@keyframes ebl-spark3 {
  from, 27.5% { stroke-dashoffset: 59; }
  50%, 52.5% { stroke-dashoffset: -25; }
  75%, to { stroke-dashoffset: -109; }
}
@keyframes ebl-spark4 {
  from, 27.5% { stroke-dashoffset: 78; }
  50%, 52.5% { stroke-dashoffset: -42; }
  75%, to { stroke-dashoffset: -162; }
}
@keyframes ebl-spark5 {
  from, 27.5% { stroke-dashoffset: 60; }
  50%, 52.5% { stroke-dashoffset: -60; }
  75%, to { stroke-dashoffset: -180; }
}
@keyframes ebl-spark6 {
  from, 27.5% { stroke-dashoffset: 91; }
  50%, 52.5% { stroke-dashoffset: -29; }
  75%, to { stroke-dashoffset: -149; }
}
@keyframes ebl-spark7 {
  from, 27.5% { stroke-dashoffset: 60; }
  50%, 52.5% { stroke-dashoffset: -26; }
  75%, to { stroke-dashoffset: -112; }
}
@keyframes ebl-spark8 {
  from, 27.5% { stroke-dashoffset: 43; }
  50%, 52.5% { stroke-dashoffset: -43; }
  75%, to { stroke-dashoffset: -129; }
}
@keyframes ebl-spark9 {
  from, 27.5% { stroke-dashoffset: 60; }
  50%, 52.5% { stroke-dashoffset: -26; }
  75%, to { stroke-dashoffset: -112; }
}
@keyframes ebl-wave-scale1 {
  from, 0%, 25%, 50%, 75% { stroke-width: 6px; transform: scale(1); }
  10%, 35%, 60%, 85%, to { animation-timing-function: steps(1); stroke-width: 0; transform: scale(2); }
}
@keyframes ebl-wave-scale2 {
  from, 5%, 30%, 55%, 80% { stroke-width: 6px; transform: scale(1); }
  15%, 40%, 65%, 90%, to { animation-timing-function: steps(1); stroke-width: 0; transform: scale(2); }
}
