/* Footer component — mirror extraction from stable layout.css. No visual changes. */
#site-footer{position:relative;margin-top:88px;background:linear-gradient(180deg,var(--bg2),#0d0517)}
#site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--grad-line)}
.footer-brand{display:flex;align-items:center;gap:14px;padding-top:44px}
.footer-brand img{width:52px;height:52px;filter:drop-shadow(0 0 14px rgba(134,66,255,.55))}
.footer-brand .name{font-family:var(--display);font-size:1.3rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.footer-brand .tag{color:var(--muted);font-size:.85rem;margin-top:2px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:34px;padding:30px 22px 42px}
.footer-grid h3{font-size:.82rem;margin-bottom:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--violet3);font-family:var(--font);font-weight:700}
.footer-grid a{display:block;color:var(--muted);padding:4px 0;font-size:.92rem;opacity:.75;transition:opacity var(--t-fast),transform var(--t-fast) var(--ease),color var(--t-fast)}
.footer-grid a:hover{opacity:1;color:var(--violet3);transform:translateX(4px)}
.footer-bottom{border-top:1px solid var(--line-soft);padding:16px 22px;text-align:center;color:var(--faint);font-size:.83rem;letter-spacing:.03em}
@media(max-width:700px){.footer-grid{grid-template-columns:1fr}}
.cookie-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:150;display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center;background:rgba(19,10,38,.92);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--r);padding:14px 20px;box-shadow:var(--shadow),var(--glow-soft);max-width:92vw;animation:cookieIn .6s var(--ease)}
@keyframes cookieIn{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}
.to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(19,10,38,.9);backdrop-filter:blur(12px);border:1px solid var(--line);color:var(--violet2);box-shadow:var(--shadow);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease),box-shadow var(--t-fast)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{box-shadow:var(--shadow),var(--glow);color:var(--violet3)}
.to-top svg.ring{position:absolute;inset:-1px;width:50px;height:50px;transform:rotate(-90deg)}
.to-top svg.ring circle{fill:none;stroke-width:2.5}
.to-top svg.ring .ring-bg{stroke:var(--line)}
.to-top svg.ring .ring-fg{stroke:url(#ttGrad);stroke-linecap:round;transition:stroke-dashoffset .12s linear}