/* Everything Will Be OK — the neon sign-off band (primary logo), every page. Nov 2026 */
.ew-signoff { background: #140D0A; color: #F5EEE3; text-align: center; padding: 76px 22px 68px; position: relative; z-index: 2; margin: 0; }
.ew-signoff-logo { display: block; width: min(460px, 80vw); margin: 0 auto; }
.ew-signoff-logo img { width: 100%; height: auto; display: block; }
.ew-signoff-by { font-family: 'Inter', -apple-system, sans-serif; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #B9A99A; margin: 18px 0 28px; font-weight: 500}
.ew-signoff-cta { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px; border: 1px solid rgba(245,238,227,0.28); color: #F5EEE3 !important; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; transition: all .25s; }
.ew-signoff-cta:hover { background: #FFA63D; border-color: #FFA63D; color: #140D0A !important; }
.ew-signoff + footer, .ew-signoff + .ew-footer, .ew-signoff + * { border-top: 0 !important; }

/* ===== Neon flicker (Nov 2026) — the logo behaves like the real tube on the wall:
   steady with a faint hum, then irregular stutters, a brown-out and a power-on.
   Two loops of different, unrelated lengths (6.7 s on the logo, 11.3 s on its
   frame) overlap, so the pattern never repeats in an obvious way. ===== */
@keyframes neonOn {
  0% { opacity: .08; filter: brightness(.5); }
  9% { opacity: .9; filter: brightness(1.1); }
  13% { opacity: .1; filter: brightness(.5); }
  27% { opacity: .1; }
  31% { opacity: .75; filter: brightness(.95); }
  36% { opacity: .2; }
  47% { opacity: 1; filter: brightness(1.15); }
  56% { opacity: .55; filter: brightness(.85); }
  62%, 100% { opacity: 1; filter: brightness(1); }
}
@keyframes neonHum {
  0%, 30.9% { opacity: 1; filter: brightness(1); }
  31% { opacity: .28; filter: brightness(.6); }
  32% { opacity: 1; filter: brightness(1.08); }
  33.2% { opacity: 1; filter: brightness(1); }
  33.4% { opacity: .5; filter: brightness(.75); }
  33.9%, 54.9% { opacity: 1; filter: brightness(1); }
  55% { opacity: .97; filter: brightness(.96); }
  57%, 77.9% { opacity: 1; filter: brightness(1.02); }
  78% { opacity: .72; filter: brightness(.82); }
  79.5% { opacity: .86; filter: brightness(.9); }
  80.5%, 100% { opacity: 1; filter: brightness(1); }
}
@keyframes neonSputter {
  0%, 59.9% { opacity: 1; }
  60% { opacity: .12; }
  60.5% { opacity: .9; }
  61.1% { opacity: .15; }
  62% { opacity: .1; }
  62.7% { opacity: 1; }
  63.5% { opacity: .42; }
  64%, 88.9% { opacity: 1; }
  89% { opacity: .2; }
  89.4%, 100% { opacity: 1; }
}
img[src$="ewbok-logotype-neon.svg"], img[src$="ewbok-logotype-neon.png"] {
  animation: neonOn 1.8s steps(1, end) 1 both, neonHum 6.7s steps(1, end) 1.8s infinite;
  will-change: opacity, filter;
}
:has(> img[src$="ewbok-logotype-neon.svg"]), :has(> img[src$="ewbok-logotype-neon.png"]) {
  animation: neonSputter 11.3s steps(1, end) 2.4s infinite;
}
@media (prefers-reduced-motion: reduce) {
  img[src$="ewbok-logotype-neon.svg"], img[src$="ewbok-logotype-neon.png"],
  :has(> img[src$="ewbok-logotype-neon.svg"]), :has(> img[src$="ewbok-logotype-neon.png"]) { animation: none !important; }
}
