/* Shared footer. Disclaimer sits in normal flow, above the brand row. */
.site-footer {
  display: block;
  max-width: 1100px;
  margin: 28px auto 0;
  padding: 8px clamp(16px, 4vw, 40px) 28px;
  box-sizing: border-box;
  text-align: center;
  color: var(--ink, #1e1b4b);
}
.disclaimer-panel {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  text-align: left;
  margin: 0 auto 18px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 2px solid #0f766e;
  background: linear-gradient(135deg, #dcfce7 0%, #d1fae5 38%, #dbeafe 100%);
  color: #0b1f2a;
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.15), 0 10px 28px rgba(15, 118, 110, 0.18);
}
.disclaimer-panel h2 {
  margin: 0 0 6px;
  font-size: 1.15rem;
  line-height: 1.3;
  color: #052e2b;
}
.disclaimer-panel p {
  margin: 0 0 8px;
  font-size: 1rem;
  line-height: 1.55;
  color: #0b1f2a;
}
.disclaimer-panel p:last-child { margin-bottom: 0; }
html[data-theme="dark"] .disclaimer-panel,
html[data-theme="dark"] .disclaimer-panel h2,
html[data-theme="dark"] .disclaimer-panel p { color: #0b1f2a; }
html[data-theme="dark"] .disclaimer-panel h2 { color: #052e2b; }
.disclaimer-panel a,
html[data-theme="dark"] .disclaimer-panel a {
  color: #1e3a8a;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.disclaimer-ico { flex: none; width: 48px; height: 48px; color: #0f766e; }
.disclaimer-ico svg { width: 100%; height: 100%; display: block; }
.footer-brand {
  margin: 0 0 10px;
  font-size: 1.35rem;
  font-weight: 800;
}
.brand-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin: 0 auto 14px;
  padding: 12px;
  width: fit-content;
  max-width: 100%;
  border-radius: 26px;
  border: 3px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(120deg, #22d3ee, #818cf8, #f472b6, #fbbf24, #22d3ee) border-box;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.65), 0 0 28px #22d3ee, 0 0 48px rgba(244, 114, 182, 0.55);
}
html.motion .brand-row { animation: brand-glow 2.8s ease-in-out infinite; }
@keyframes brand-glow {
  50% { box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.8), 0 0 36px #f472b6, 0 0 64px rgba(34, 211, 238, 0.75); }
}
html[data-theme="dark"] .brand-row {
  background:
    linear-gradient(#0f172a, #0f172a) padding-box,
    linear-gradient(120deg, #22d3ee, #818cf8, #f472b6, #fbbf24) border-box;
}
.brand-icon {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border-radius: 24px;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.brand-icon svg { width: 56px; height: 56px; display: block; }
.brand-icon:hover, .brand-icon:focus-visible {
  transform: translateY(-3px) scale(1.05);
  outline: 3px solid #fde047;
  outline-offset: 2px;
}
.brand-web {
  background: radial-gradient(circle at 30% 25%, #c4b5fd, #312e81 72%);
  box-shadow: 0 0 18px #a78bfa, 0 8px 18px rgba(0, 0, 0, 0.25);
}
.brand-gh { background: #24292f; }
.brand-tree {
  background: radial-gradient(circle at 32% 24%, #d9f99d, #4ade80 42%, #166534 78%);
  box-shadow: 0 0 0 3px #052e16, 0 0 16px #4ade80, 0 0 28px rgba(74, 222, 128, 0.9);
}
.brand-tree svg { filter: drop-shadow(0 0 3px #ecfccb); }
.site-copy { margin: 4px 0 0; font-weight: 800; }
.standalone {
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 16px 8px;
  font-family: system-ui, sans-serif;
  background: #fff7ed;
  color: #1e1b4b;
}
.standalone h1 { font-size: 1.6rem; line-height: 1.2; }
.standalone svg { width: 100%; height: auto; }
@media (max-width: 560px) {
  .disclaimer-panel { flex-direction: column; padding: 14px; }
  .brand-icon { width: 84px; height: 84px; }
  .brand-icon svg { width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-row { animation: none; }
}
@media print {
  .brand-row { box-shadow: none; }
}
