{
  "html": "<footer class='footer'><div class='footer__bg'><span class='footer__blob footer__blob--1'></span><span class='footer__blob footer__blob--2'></span><span class='footer__blob footer__blob--3'></span></div><div class='footer__particles'><span class='footer__particle' style='--x:8%;--d:0s;--s:6px'></span><span class='footer__particle' style='--x:18%;--d:1.2s;--s:4px'></span><span class='footer__particle' style='--x:29%;--d:2.4s;--s:7px'></span><span class='footer__particle' style='--x:41%;--d:0.6s;--s:5px'></span><span class='footer__particle' style='--x:53%;--d:1.8s;--s:6px'></span><span class='footer__particle' style='--x:64%;--d:3s;--s:4px'></span><span class='footer__particle' style='--x:76%;--d:0.9s;--s:7px'></span><span class='footer__particle' style='--x:88%;--d:2.1s;--s:5px'></span><span class='footer__particle' style='--x:95%;--d:1.5s;--s:6px'></span></div><div class='footer__inner'><p class='footer__copy'>© 2026 Алексей Смирнов</p><nav class='footer__nav'><a href='/policy' class='footer__link'>Политика</a><a href='/rules' class='footer__link'>Правила</a></nav></div></footer>",
  "css": ".footer { position: relative; overflow: hidden; background: linear-gradient(135deg, #f8fafc 0%, #ecfeff 100%); border-top: 1px solid #a5f3fc; } .footer .footer__bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; } .footer .footer__blob { position: absolute; border-radius: 50%; filter: blur(40px); opacity: 0.55; } .footer .footer__blob--1 { width: 260px; height: 260px; top: -120px; left: -60px; background: radial-gradient(circle at 30% 30%, #67e8f9, #22d3ee 60%, transparent 70%); animation: footer-float 12s ease-in-out infinite; } .footer .footer__blob--2 { width: 220px; height: 220px; bottom: -100px; right: 10%; background: radial-gradient(circle at 60% 40%, #38bdf8, #0ea5e9 60%, transparent 70%); animation: footer-float 15s ease-in-out infinite reverse; } .footer .footer__blob--3 { width: 180px; height: 180px; top: 20%; right: -60px; background: radial-gradient(circle at 50% 50%, #06b6d4, #22d3ee 60%, transparent 70%); animation: footer-float 18s ease-in-out infinite; } .footer .footer__particles { position: absolute; inset: 0; pointer-events: none; z-index: 0; } .footer .footer__particle { position: absolute; bottom: -10px; left: var(--x); width: var(--s); height: var(--s); border-radius: 50%; background: radial-gradient(circle at 30% 30%, #ffffff, #67e8f9 70%); box-shadow: 0 0 8px #22d3ee, 0 0 16px rgba(34, 211, 238, 0.6); animation: footer-rise 8s linear infinite; animation-delay: var(--d); } .footer .footer__inner { position: relative; z-index: 1; } .footer .footer__copy { color: #0e7490; font-weight: 500; } .footer .footer__link { position: relative; display: inline-block; padding: 4px 8px; border-radius: 8px; color: #0891b2; transition: color 0.25s ease, transform 0.35s ease, box-shadow 0.35s ease; transform-style: preserve-3d; } .footer .footer__link::after { content: ''; position: absolute; left: 8px; right: 8px; bottom: 2px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #22d3ee, #38bdf8); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } .footer .footer__link:hover { color: #0e7490; transform: perspective(400px) rotateX(12deg) translateY(-2px); box-shadow: 0 6px 18px rgba(34, 211, 238, 0.45); } .footer .footer__link:hover::after { transform: scaleX(1); } @keyframes footer-float { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -20px) scale(1.08); } 66% { transform: translate(-20px, 25px) scale(0.95); } } @keyframes footer-rise { 0% { transform: translateY(0) scale(0.6); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translateY(-140px) scale(1.1); opacity: 0; } }"
}