{
  "html": "<footer class='footer'><div class='footer__spotlight' aria-hidden='true'></div><div class='footer__inner'><p class='footer__copy'>© 2026 Весёлые шарики</p><nav class='footer__nav'><a href='/policy' class='footer__link'><span class='footer__link-text'>Политика</span></a><a href='/rules' class='footer__link'><span class='footer__link-text'>Правила</span></a></nav></div></footer>",
  "css": ".footer { position: relative; overflow: hidden; --footer-mx: 50%; --footer-my: 50%; }\n.footer .footer__spotlight { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(320px circle at var(--footer-mx) var(--footer-my), rgba(96, 165, 250, 0.35), rgba(59, 130, 246, 0.12) 40%, transparent 70%); opacity: 0; transition: opacity 0.35s ease; z-index: 0; }\n.footer:hover .footer__spotlight, .footer:focus-within .footer__spotlight { opacity: 1; }\n.footer .footer__inner { position: relative; z-index: 1; }\n.footer .footer__link { position: relative; display: inline-block; padding: 4px 2px; will-change: transform; transition: color 0.2s, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); }\n.footer .footer__link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #2563eb, #60a5fa); transform: scaleX(0); transform-origin: left center; transition: transform 0.3s ease; }\n.footer .footer__link:hover, .footer .footer__link:focus-visible { color: #2563eb; transform: translateY(-3px); }\n.footer .footer__link:hover::after, .footer .footer__link:focus-visible::after { transform: scaleX(1); }\n.footer .footer__link:focus-within { transform: translateY(-3px); }\n.footer .footer__link:active { animation: footer-bounce 0.45s ease; }\n.footer .footer__link-text { display: inline-block; }\n.footer .footer__link:hover .footer__link-text { animation: footer-bounce 0.5s ease; }\n@keyframes footer-bounce { 0% { transform: translateY(0); } 30% { transform: translateY(-6px); } 55% { transform: translateY(0); } 75% { transform: translateY(-3px); } 100% { transform: translateY(0); } }\n.footer .footer__copy { position: relative; transition: color 0.25s ease; }\n.footer .footer__copy::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #60a5fa; box-shadow: 0 0 0 0 rgba(96, 165, 250, 0.6); animation: footer-pulse 2.4s ease-in-out infinite; vertical-align: middle; }\n@keyframes footer-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(96, 165, 250, 0.55); } 50% { box-shadow: 0 0 0 8px rgba(96, 165, 250, 0); } }"
}