/* Broad soft reflection, traveling edge light, and staggered blooms. */
.theme-epico .hero-logo { position: relative; isolation: isolate; }
.logo-sheen, .logo-edge-light, .logo-glints, .landscape-light { position: absolute; inset: 0; pointer-events: none; }
.logo-sheen {
  z-index: 2;
  mask: url('./assets/responsive/emunah-alpha.webp') center / 100% 100% no-repeat;
  mix-blend-mode: screen;
  opacity: .62;
}
.logo-sheen::before {
  content: '';
  position: absolute;
  inset: -15%;
  background: linear-gradient(110deg, transparent 34%, #fff3ce22 40%, #fffbe9aa 50%, #fff3ce22 60%, transparent 66%) 150% 50% / 300% 100% no-repeat;
  filter: blur(clamp(16px, 2.5vw, 34px));
  animation: seed-gold-sheen 13s 1.5s ease-in-out infinite;
}
.logo-edge-light { width: 100%; height: 100%; overflow: visible; z-index: 3; mix-blend-mode: screen; }
.edge-trace { --edge-speed: 7s; --edge-delay: -1s; }
.edge-u { --edge-speed: 8.6s; --edge-delay: -4.6s; }
.edge-h { --edge-speed: 6.8s; --edge-delay: -3.3s; }
.edge-trace path {
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: calc(var(--edge-half) * 2) 140;
  stroke-dashoffset: calc(var(--edge-half) + 20px);
  opacity: 0;
  animation: seed-edge-run var(--edge-speed) var(--edge-delay) ease-in-out infinite;
}
.edge-bloom { stroke: #ffd379; stroke-width: 60; filter: blur(26px); }
.edge-aura { stroke: #ffeab5; stroke-width: 18; filter: blur(12px); }
.edge-core { stroke: #fff7dc; stroke-width: 5; filter: blur(6px); }
.logo-glints { z-index: 4; }
.light-glint {
  position: absolute;
  left: var(--glint-x);
  top: var(--glint-y);
  width: var(--glint-size, 80px);
  aspect-ratio: 1;
  opacity: .18;
  transform: translate(-50%, -50%) scale(.75);
  background: radial-gradient(circle, #fffff8 0 3%, #fff7dcf2 6%, #ffe8a999 17%, #ffcd6352 31%, transparent 66%);
  filter: drop-shadow(0 0 5px #fff8da) drop-shadow(0 0 15px #ffcd6b8c);
  mix-blend-mode: screen;
  animation: var(--glint-animation, seed-glint) var(--glint-period, 7s) var(--glint-delay, 0s) ease-in-out infinite;
}
.light-glint::before, .light-glint::after { content: ''; position: absolute; inset: 48% 0; background: linear-gradient(90deg, transparent, #fff0c3 30%, #fffef5 50%, #fff0c3 70%, transparent); clip-path: polygon(0 50%, 43% 30%, 50% 0, 57% 30%, 100% 50%, 57% 70%, 50% 100%, 43% 70%); }
.light-glint::after { transform: rotate(90deg) scaleX(.7); }
.glint-e { --glint-x: 24.2%; --glint-y: 79.2%; --glint-size: clamp(56px, 9vw, 112px); --glint-delay: -.8s; }
.glint-a { --glint-x: 75.2%; --glint-y: 19.8%; --glint-size: clamp(48px, 8vw, 96px); --glint-delay: -4s; --glint-period: 8.2s; }
.glint-h { --glint-x: 80.8%; --glint-y: 50.3%; --glint-size: clamp(44px, 7vw, 82px); --glint-delay: -2.8s; --glint-period: 6.6s; }
.landscape-light { z-index: 2; }
.horizon-glow {
  position: absolute;
  left: 24%; right: 24%; top: 47%; height: 37%;
  background: radial-gradient(ellipse, #fff8d16b, #ffe4a52e 35%, transparent 70%);
  mix-blend-mode: screen;
  opacity: .36;
  animation: seed-horizon 12s ease-in-out infinite alternate;
}
.glint-leaves { --glint-x: 21%; --glint-y: 61%; --glint-size: clamp(38px, 5vw, 76px); --glint-delay: -3s; --glint-period: 7.8s; }
.glint-stone { --glint-x: 76%; --glint-y: 73%; --glint-size: clamp(34px, 4vw, 66px); --glint-delay: -6s; --glint-period: 9s; }
.scene-bloom {
  position: absolute;
  width: var(--bloom-size, 130px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, #fff5cebb, #ffda7970 24%, #ffd27826 44%, transparent 70%);
  filter: blur(var(--bloom-blur, 8px));
  mix-blend-mode: screen;
  opacity: .12;
  animation: seed-bloom var(--bloom-speed, 8s) var(--bloom-delay, 0s) ease-in-out infinite;
}
.bloom-left { left: 16%; top: 37%; --bloom-size: clamp(70px, 10vw, 170px); --bloom-delay: -1s; }
.bloom-right { right: 12%; top: 57%; --bloom-size: clamp(62px, 8vw, 140px); --bloom-speed: 10s; --bloom-delay: -5s; }
.bloom-near { left: 10%; top: 73%; --bloom-size: clamp(90px, 12vw, 210px); --bloom-blur: 16px; --bloom-speed: 11s; --bloom-delay: -7s; }
.frame-light { position: absolute; inset: clamp(12px, 1.4vw, 28px); z-index: 16; pointer-events: none; }
.frame-glint {
  position: absolute;
  width: clamp(72px, 10vw, 160px);
  height: 52px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #ffffedeb 0 2%, #ffe7a9a3 7%, #ffce6659 20%, transparent 62%);
  opacity: 0;
  filter: blur(1px) drop-shadow(0 0 10px #ffdd8d);
  animation: seed-frame-light 10s -2s ease-in-out infinite;
}
.frame-glint::after { content: ''; position: absolute; inset: calc(50% - 1px) 0; background: linear-gradient(90deg, transparent, #fff9d7 40% 60%, transparent); }
.frame-glint-top { top: 0; }
.frame-glint-bottom { top: 100%; animation-delay: -7s; animation-duration: 12s; animation-direction: reverse; }
@keyframes seed-gold-sheen { 0% { background-position: 150% 50%; } 45%, 100% { background-position: -50% 50%; } }
@keyframes seed-edge-run { 0% { stroke-dashoffset: calc(var(--edge-half) + 20px); opacity: 0; } 12% { opacity: .9; } 65% { opacity: 1; } 88%, 100% { stroke-dashoffset: calc(var(--edge-half) - 120px); opacity: 0; } }
@keyframes seed-glint { 0%, 62%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(.55); } 23% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 37% { opacity: .65; transform: translate(-50%, -50%) scale(.88); } }
@keyframes seed-bloom { 0%, 80%, 100% { opacity: .03; transform: translate3d(0, 6px, 0) scale(.75); } 35% { opacity: .7; transform: translate3d(12px, -12px, 0) scale(1.1); } }
@keyframes seed-frame-light { 0% { left: 8%; opacity: 0; } 15% { opacity: .9; } 55% { opacity: 1; } 75%, 100% { left: 78%; opacity: 0; } }
@keyframes seed-horizon { from { opacity: .22; transform: scale(.96); } to { opacity: .5; transform: scale(1.04); } }
.theme-epico .scene-idle :is(.edge-trace path, .light-glint, .horizon-glow, .scene-bloom, .frame-glint),
.theme-epico .scene-idle .logo-sheen::before { animation-play-state: paused; }
html[data-motion=paused] .theme-epico :is(.edge-trace path, .light-glint, .horizon-glow, .scene-bloom, .frame-glint),
html[data-motion=paused] .theme-epico .logo-sheen::before { animation: none; }
html[data-motion=paused] .theme-epico .logo-sheen { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .theme-epico :is(.edge-trace path, .light-glint, .horizon-glow, .scene-bloom, .frame-glint),
  .theme-epico .logo-sheen::before { animation: none; }
  .theme-epico .logo-sheen { display: none; }
}
@media (forced-colors: active) {
  .theme-epico :is(.logo-sheen, .logo-edge-light, .logo-glints, .landscape-light, .frame-light) { display: none; }
}

/* Red edition: light belongs to the gold, with a small optical glint. */
.theme-epico:not(.theme-semente-dia) .logo-sheen {
  mix-blend-mode: soft-light;
  opacity: .8;
}
.theme-epico:not(.theme-semente-dia) .logo-edge-light {
  mix-blend-mode: screen;
  mask: url('./assets/responsive/emunah-alpha.webp') center / 100% 100% no-repeat;
}
.theme-epico:not(.theme-semente-dia) .logo-glints {
  mix-blend-mode: screen;
  opacity: 1;
  --glint-animation: red-logo-sparkle;
}
.theme-epico:not(.theme-semente-dia) .logo-glints .light-glint {
  background: radial-gradient(circle, #fffff7 0 3%, #fff9e8d9 5%, #fff5dd40 8%, transparent 15%);
  filter: drop-shadow(0 0 3px #fff0bf8c);
  mix-blend-mode: normal;
}
.theme-epico:not(.theme-semente-dia) .logo-glints .light-glint::before,
.theme-epico:not(.theme-semente-dia) .logo-glints .light-glint::after {
  inset: 47.5% 0;
  background: radial-gradient(ellipse, #fffff7 0 12%, #fff7e2c9 25%, #fff7e266 48%, transparent 75%);
  clip-path: none;
  filter: blur(.35px);
}
.theme-epico:not(.theme-semente-dia) .glint-e { --glint-size: clamp(46px, 8vw, 96px); --glint-period: 6.4s; --glint-delay: -.3s; }
.theme-epico:not(.theme-semente-dia) .glint-a { --glint-size: clamp(40px, 7vw, 84px); --glint-period: 7.2s; --glint-delay: -2.7s; }
.theme-epico:not(.theme-semente-dia) .glint-h { --glint-size: clamp(34px, 6vw, 70px); --glint-period: 5.8s; --glint-delay: -4.1s; }
@keyframes red-logo-sparkle {
  0%, 72%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(.7); }
  20%, 32% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  52% { opacity: .4; transform: translate(-50%, -50%) scale(.88); }
}
