{
  "html": "<footer class='footer'><div class='footer__inner'><p class='footer__copy'>© 2026 Алексей Смирнов</p><nav class='footer__nav'><a href='/policy' class='footer__link'><span class='footer__dot' aria-hidden='true'></span>Политика</a><a href='/rules' class='footer__link'><span class='footer__dot' aria-hidden='true'></span>Правила</a></nav></div><div class='footer__particles' aria-hidden='true'><span class='footer__particle'></span><span class='footer__particle'></span><span class='footer__particle'></span><span class='footer__particle'></span><span class='footer__particle'></span></div></footer>",
  "css": ".footer { position: relative; overflow: hidden; animation: footer-breathe 0.3s ease-out infinite alternate; }\n.footer .footer__link { position: relative; display: inline-flex; align-items: center; gap: 8px; }\n.footer .footer__dot { width: 8px; height: 8px; border-radius: 50%; background: #3b82f6; box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.6); animation: footer-glow 2s ease-in-out infinite; transition: background 0.25s ease, transform 0.25s ease; }\n.footer .footer__link:hover .footer__dot { background: #2563eb; transform: scale(1.25); }\n.footer .footer__link:hover { color: #2563eb; }\n.footer .footer__particles { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 0.3s ease; }\n.footer .footer__particle { position: absolute; bottom: 0; width: 6px; height: 6px; border-radius: 50%; background: #60a5fa; opacity: 0.7; }\n.footer .footer__particle:nth-child(1) { left: 12%; animation: footer-float 4s ease-in-out infinite; }\n.footer .footer__particle:nth-child(2) { left: 32%; animation: footer-float 5s ease-in-out infinite 0.5s; background: #93c5fd; }\n.footer .footer__particle:nth-child(3) { left: 54%; animation: footer-float 4.5s ease-in-out infinite 1s; }\n.footer .footer__particle:nth-child(4) { left: 72%; animation: footer-float 5.5s ease-in-out infinite 0.3s; background: #bfdbfe; }\n.footer .footer__particle:nth-child(5) { left: 88%; animation: footer-float 4.2s ease-in-out infinite 0.8s; }\n.footer:focus-within .footer__particles { opacity: 1; }\n@keyframes footer-breathe { from { transform: scale(1); } to { transform: scale(1.01); } }\n@keyframes footer-glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.55); } 50% { box-shadow: 0 0 12px 4px rgba(59, 130, 246, 0.35); } }\n@keyframes footer-float { 0% { transform: translateY(0) translateX(0); opacity: 0; } 20% { opacity: 0.8; } 100% { transform: translateY(-60px) translateX(12px); opacity: 0; } }"
}