/* InvictusBoost — invictus-footer
   Site footer (renderFooter in public/assets/js/app.js + site.css "footer" block),
   the "socials" section tiles and the scroll-to-top button.
   Self-contained: every rule is scoped under its own wrapper class and carries
   its own tokens, so nothing here depends on (or leaks into) other stylesheets.
   The footer itself (components/footer.njk) uses the .ibf-* classes. */

/* ------------------------------------------------------------------ tokens */
.ib-site-footer,
.ib-socials,
.ib-totop-wrap,
.ib-totop {
  --ibf-panel: #0e1524;
  --ibf-ink: #05080f;
  --ibf-line-strong: rgba(110, 168, 255, 0.28);
  --ibf-text: #f4f7ff;
  --ibf-text-dim: #9aadc8;
  --ibf-accent: #4f8cff;
  --ibf-accent-2: #7eb0ff;
  --ibf-accent-rgb: 79, 140, 255;
  --ibf-font: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ibf-font-display: 'Outfit', 'Work Sans', sans-serif;
  --ibf-footer-bg: #03060c;
  --ibf-footer-text: #e8eefc;
  --ibf-footer-link: #9aadc8;
  /* Site avatar (public/assets/img/logo-512.png), pre-cropped to what the 38px mark shows. */
  --ibf-logo: url("data:image/webp;base64,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");
}

/* ================================================================== footer
   components/footer.njk
     .wrap
       .ibf-top      .ibf-brand | .ibf-main (.ibf-cols + .ibf-pay)
       .ibf-cta      call-to-action bar
       .footer-bottom  disclaimer + copyright / legal links
   (.footer-bottom is also read by components/scroll-to-top.njk.) */
footer.footer.ib-site-footer {
  --ibf-line: rgba(120, 170, 255, 0.12);
  --ibf-muted: #6d7f99;
  --ibf-pos: #34d399;
  --ibf-pos-rgb: 52, 211, 153;
  --ibf-radius: 16px;
  position: relative;
  z-index: 1;
  isolation: isolate;
  overflow: hidden;
  margin-top: 40px;
  padding: 64px 0 28px;
  border-top: 1px solid var(--ibf-line);
  background:
    radial-gradient(ellipse 62% 50% at 50% 0%, rgba(var(--ibf-accent-rgb), 0.1) 0%, transparent 70%),
    radial-gradient(ellipse 34% 40% at 6% 100%, rgba(var(--ibf-accent-rgb), 0.05) 0%, transparent 70%),
    var(--ibf-footer-bg);
  color: var(--ibf-footer-text);
  font-family: var(--ibf-font);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: normal;
  text-align: start;
  -webkit-font-smoothing: antialiased;
}
/* Hairline highlight on the top edge. */
footer.footer.ib-site-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: min(760px, 82%);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(126, 176, 255, 0.65), transparent);
  pointer-events: none;
}
.ib-site-footer *,
.ib-site-footer *::before,
.ib-site-footer *::after { box-sizing: border-box; }
.ib-site-footer a { text-decoration: none; cursor: pointer; }
.ib-site-footer a:focus-visible {
  outline: 2px solid var(--ibf-accent);
  outline-offset: 3px;
  border-radius: 6px;
}
.ib-site-footer p { margin: 0; }
.ib-site-footer ul { list-style: none; margin: 0; padding: 0; }
.ib-site-footer svg { display: block; flex: none; }
.ib-site-footer .ibf-ico { width: 16px; height: 16px; }

.ib-site-footer .wrap {
  width: min(1180px, calc(100% - clamp(20px, 4.5vw, 40px)));
  max-width: none;
  margin-inline: auto;
  padding: 0;
  position: relative;
  z-index: 1;
}

/* ---- top: brand | columns + payments */
.ib-site-footer .ibf-top {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 640px);
  justify-content: space-between;
  align-items: start;
  gap: 40px 56px;
}
.ib-site-footer .ibf-brand,
.ib-site-footer .ibf-main { min-width: 0; }

/* ---- brand block */
.ib-site-footer .ibf-brand__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 16px;
  color: #fff;
  max-width: 100%;
}
.ib-site-footer .ibf-brand__link:hover { color: #fff; }
.ib-site-footer .ibf-brand__mark {
  width: 40px;
  height: 40px;
  flex: none;
  display: block;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--ibf-line-strong);
  background: #0b0f18;
  box-shadow: 0 10px 22px -12px rgba(var(--ibf-accent-rgb), 0.6);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.ib-site-footer .ibf-brand__mark--site {
  background: #0b0f18 var(--ibf-logo) center / cover no-repeat;
}
.ib-site-footer .ibf-brand__mark img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: none;
  object-fit: cover;
  display: block;
  margin: 0;
}
.ib-site-footer .ibf-brand__link:hover .ibf-brand__mark {
  border-color: rgba(var(--ibf-accent-rgb), 0.6);
  box-shadow: 0 12px 26px -12px rgba(var(--ibf-accent-rgb), 0.85);
}
.ib-site-footer .ibf-brand__name {
  font-family: var(--ibf-font-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ib-site-footer .ibf-blurb {
  margin: 0 0 18px;
  max-width: 44ch;
  color: var(--ibf-footer-link);
  font-size: 14px;
  line-height: 1.65;
}

/* ---- status pill */
.ib-site-footer .ibf-status {
  display: flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 18px;
  padding: 6px 13px 6px 11px;
  border-radius: 999px;
  border: 1px solid rgba(var(--ibf-pos-rgb), 0.34);
  background: rgba(var(--ibf-pos-rgb), 0.08);
  color: var(--ibf-pos);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
}
.ib-site-footer .ibf-status__dot {
  width: 7px;
  height: 7px;
  flex: none;
  border-radius: 50%;
  background: var(--ibf-pos);
  animation: ibfStatusPulse 2s ease-out infinite;
}
@keyframes ibfStatusPulse {
  0%   { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.6); }
  70%  { box-shadow: 0 0 0 7px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

/* ---- round social buttons */
.ib-site-footer .ibf-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ib-site-footer .ibf-social__btn {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--ibf-line-strong);
  background: rgba(14, 21, 36, 0.9);
  color: #cfe0ff;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s ease;
}
.ib-site-footer .ibf-social__btn svg { width: 18px; height: 18px; }
.ib-site-footer .ibf-social__btn:hover {
  background: var(--ibf-accent);
  border-color: var(--ibf-accent);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 22px -12px rgba(var(--ibf-accent-rgb), 0.9);
}

/* ---- link columns */
.ib-site-footer .ibf-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px 24px;
}
.ib-site-footer .ibf-col { min-width: 0; }
.ib-site-footer .ibf-col__title {
  margin: 0 0 14px;
  color: var(--ibf-accent-2);
  font-family: var(--ibf-font-display);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.4;
}
.ib-site-footer .ibf-col ul {
  display: grid;
  gap: 11px;
}
.ib-site-footer .ibf-col li { min-width: 0; }
.ib-site-footer .ibf-col a {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 100%;
  color: var(--ibf-footer-link);
  font-size: 14px;
  line-height: 1.4;
  transition: color .18s ease, transform .18s ease;
}
.ib-site-footer .ibf-col a span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.ib-site-footer .ibf-col a .ibf-ico {
  margin-top: 2px; /* (14px * 1.4 line - 16px icon) / 2: centred on the first line */
  color: var(--ibf-muted);
  transition: color .18s ease;
}
.ib-site-footer .ibf-col a:hover {
  color: #fff;
  transform: translateX(2px);
}
.ib-site-footer .ibf-col a:hover .ibf-ico { color: var(--ibf-accent-2); }

/* ---- accepted payments */
.ib-site-footer .ibf-pay { margin-top: 32px; }
.ib-site-footer .ibf-pay__title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 12px;
  color: var(--ibf-text);
  font-family: var(--ibf-font-display);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.ib-site-footer .ibf-pay__title .ibf-ico { color: var(--ibf-accent-2); }
.ib-site-footer .ibf-pay__box {
  padding: 16px;
  border: 1px solid var(--ibf-line);
  border-radius: var(--ibf-radius);
  background: linear-gradient(165deg, rgba(18, 27, 46, 0.62) 0%, rgba(10, 16, 28, 0.72) 100%);
}
.ib-site-footer .ibf-pay__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ib-site-footer .ibf-pay__tile {
  width: 58px;
  min-width: 0;
  padding: 10px 4px 9px;
  display: grid;
  justify-items: center;
  gap: 8px;
  border: 1px solid var(--ibf-line);
  border-radius: 12px;
  background: rgba(5, 8, 15, 0.55);
  transition: border-color .2s ease, transform .2s cubic-bezier(.2, .8, .2, 1), background .2s ease;
}
.ib-site-footer .ibf-pay__tile:hover {
  border-color: rgba(var(--ibf-accent-rgb), 0.42);
  background: rgba(14, 21, 36, 0.9);
  transform: translateY(-2px);
}
.ib-site-footer .ibf-pay__tile--wide {
  width: auto;
  min-width: 58px;
  max-width: 132px;
  padding-inline: 10px;
}
.ib-site-footer .ibf-coin {
  width: 26px;
  height: 26px;
  display: block;
  border-radius: 50%;
}
.ib-site-footer .ibf-coin--img { object-fit: contain; border-radius: 6px; }
.ib-site-footer .ibf-coin--letter {
  display: grid;
  place-items: center;
  background: rgba(var(--ibf-accent-rgb), 0.18);
  color: var(--ibf-accent-2);
  font-family: var(--ibf-font-display);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.ib-site-footer .ibf-pay__ticker {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ibf-footer-link);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}
.ib-site-footer .ibf-pay__note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 14px 0 0;
  color: var(--ibf-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.ib-site-footer .ibf-pay__note .ibf-ico {
  width: 14px;
  height: 14px;
  margin-top: 2px;
  color: var(--ibf-accent-2);
}

/* ---- call-to-action bar */
.ib-site-footer .ibf-cta {
  margin-top: 44px;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  border: 1px solid rgba(var(--ibf-accent-rgb), 0.22);
  border-radius: var(--ibf-radius);
  background:
    radial-gradient(ellipse 60% 150% at 100% 0%, rgba(var(--ibf-accent-rgb), 0.16), transparent 60%),
    rgba(14, 21, 36, 0.72);
}
.ib-site-footer .ibf-cta__copy { min-width: 0; flex: 1 1 280px; }
.ib-site-footer .ibf-cta__title {
  margin: 0 0 4px;
  color: var(--ibf-text);
  font-family: var(--ibf-font-display);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.ib-site-footer .ibf-cta__text {
  color: var(--ibf-text-dim);
  font-size: 13.5px;
  line-height: 1.5;
}
.ib-site-footer .ibf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: none;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: linear-gradient(180deg, #5d97ff 0%, #3f7cf2 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 14px 28px -16px rgba(var(--ibf-accent-rgb), 0.95);
  transition: filter .18s ease, transform .18s cubic-bezier(.2, .8, .2, 1), box-shadow .18s ease;
}
.ib-site-footer .ibf-btn .ibf-ico { transition: transform .22s cubic-bezier(.2, .8, .2, 1); }
.ib-site-footer .ibf-btn:hover {
  color: #fff;
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 16px 32px -14px rgba(var(--ibf-accent-rgb), 1);
}
.ib-site-footer .ibf-btn:hover .ibf-ico { transform: translateX(3px); }
.ib-site-footer .ibf-btn:active { transform: translateY(0); filter: brightness(.97); }

/* ---- bottom: disclaimer, then copyright + legal links */
.ib-site-footer .footer-bottom {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--ibf-line);
}
.ib-site-footer .ibf-disclaimer {
  max-width: 760px;
  margin: 0 auto 16px;
  color: var(--ibf-muted);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  text-wrap: balance;
}
.ib-site-footer .ibf-legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 24px;
  color: var(--ibf-muted);
  font-size: 12.5px;
  line-height: 1.5;
}
.ib-site-footer .ibf-copy { display: block; }
.ib-site-footer .ibf-legal__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
}
.ib-site-footer .ibf-legal__links li {
  display: flex;
  align-items: center;
}
.ib-site-footer .ibf-legal__links li + li::before {
  content: '';
  width: 3px;
  height: 3px;
  margin: 0 11px;
  border-radius: 50%;
  background: var(--ibf-muted);
  opacity: .7;
}
.ib-site-footer .ibf-legal__links a {
  color: var(--ibf-accent-2);
  transition: color .18s ease;
}
.ib-site-footer .ibf-legal__links a:hover { color: #fff; }

/* ---- responsive: brand above the columns, then 2 columns, then 1 */
@media (max-width: 1020px) {
  .ib-site-footer .ibf-top { grid-template-columns: minmax(0, 1fr); }
  .ib-site-footer .ibf-blurb { max-width: 62ch; }
}
@media (max-width: 640px) {
  footer.footer.ib-site-footer { padding: 48px 0 24px; }
  .ib-site-footer .ibf-top { gap: 34px; }
  .ib-site-footer .ibf-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ib-site-footer .ibf-col--support { grid-column: 1 / -1; }
  .ib-site-footer .ibf-col--support ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
  }
  .ib-site-footer .ibf-pay__box { padding: 14px; }
  .ib-site-footer .ibf-pay__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
    gap: 8px;
  }
  .ib-site-footer .ibf-pay__tile { width: auto; }
  .ib-site-footer .ibf-pay__tile--wide { grid-column: span 2; max-width: none; }
  .ib-site-footer .ibf-cta {
    margin-top: 34px;
    padding: 20px;
    flex-direction: column;
    align-items: flex-start;
  }
  .ib-site-footer .ibf-cta__copy { flex: none; }
  .ib-site-footer .ibf-legal {
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  /* The links wrap here; plain gaps instead of dots, so no line starts with a stray separator. */
  .ib-site-footer .ibf-legal__links { justify-content: center; gap: 6px 20px; }
  .ib-site-footer .ibf-legal__links li + li::before { display: none; }
}
@media (max-width: 359px) {
  .ib-site-footer .ibf-cols,
  .ib-site-footer .ibf-col--support ul { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .ib-site-footer .ibf-status__dot { animation: none; }
  .ib-site-footer .ibf-social__btn,
  .ib-site-footer .ibf-col a,
  .ib-site-footer .ibf-pay__tile,
  .ib-site-footer .ibf-btn,
  .ib-site-footer .ibf-btn .ibf-ico { transition: none; }
  .ib-site-footer .ibf-social__btn:hover,
  .ib-site-footer .ibf-col a:hover,
  .ib-site-footer .ibf-pay__tile:hover,
  .ib-site-footer .ibf-btn:hover,
  .ib-site-footer .ibf-btn:hover .ibf-ico { transform: none; }
}
@media print {
  footer.footer.ib-site-footer { display: none !important; }
}

/* ========================================================= socials section
   components/socials.njk — the site's "premium" section head + tiles. */
.ib-socials,
.socials.ib-socials {
  position: relative;
  isolation: isolate;
  z-index: 1;
  padding: 34px 0;
  background: none; /* pro.css paints .socials as a grey band */
  font-family: var(--ibf-font);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ibf-text);
  -webkit-font-smoothing: antialiased;
}
.ib-socials *,
.ib-socials *::before,
.ib-socials *::after { box-sizing: border-box; }
.ib-socials::before {
  content: '';
  position: absolute;
  inset: 8% 4% auto;
  height: 58%;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse 55% 70% at 18% 40%, rgba(79, 140, 255, 0.12) 0%, transparent 70%),
    radial-gradient(ellipse 40% 55% at 88% 30%, rgba(126, 176, 255, 0.08) 0%, transparent 68%),
    linear-gradient(90deg, transparent 0%, rgba(79, 140, 255, 0.04) 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 78%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 18%, #000 78%, transparent);
}
.ib-socials .wrap {
  width: min(1180px, calc(100% - clamp(20px, 4.5vw, 40px)));
  max-width: none;
  margin-inline: auto;
  padding: 0;
  position: relative;
  z-index: 1;
}
.ib-socials .section-head {
  text-align: left;
  max-width: 640px;
  margin: 0 0 22px;
}
/* Site: `.section-head p` out-ranks `.eyebrow`, so a premium section's kicker
   renders 15px / text-dim with no gap under it ("HOW IT WORKS"). */
.ib-socials .section-head .eyebrow {
  margin: 0;
  max-width: 52ch;
  color: var(--ibf-text-dim);
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.55;
  text-transform: uppercase;
}
.ib-socials .section-head h2 {
  margin: 0 0 8px;
  color: var(--ibf-text);
  font-family: var(--ibf-font-display);
  font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.55;
  text-wrap: balance;
}
.ib-socials .section-head p:not(.eyebrow) {
  margin: 0;
  max-width: 52ch;
  color: var(--ibf-text-dim);
  font-size: 0.9375rem;
}
.ib-socials__grid {
  display: grid;
  gap: 14px;
  /* 215px lets all five networks share one row inside the 1180px wrap */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 215px), 1fr));
}
.ib-socials .premium-tile {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 1.25em 1.375em;
  border-radius: 14px;
  border: 1px solid rgba(120, 170, 255, 0.16);
  background: linear-gradient(165deg, rgba(18, 27, 46, 0.92) 0%, rgba(10, 16, 28, 0.96) 100%);
  box-shadow: 0 18px 40px -28px rgba(0, 0, 0, 0.7);
  color: var(--ibf-text);
  text-decoration: none;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), border-color .22s ease, box-shadow .28s ease;
}
.ib-socials .premium-tile::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, 0.07) 50%, transparent 80%);
  transform: skewX(-10deg) translateX(-130%);
  transition: transform 0s;
}
.ib-socials .premium-tile:hover::before {
  transform: skewX(-10deg) translateX(220%);
  transition: transform .6s cubic-bezier(.4, 0, .2, 1);
}
.ib-socials .premium-tile:hover {
  border-color: rgba(var(--ibf-accent-rgb), 0.42);
  box-shadow: 0 22px 44px -26px rgba(79, 140, 255, 0.35);
  transform: translateY(-2px);
  color: var(--ibf-text);
}
.ib-socials .premium-tile:focus-visible {
  outline: 2px solid var(--ibf-accent);
  outline-offset: 3px;
}
.ib-socials .premium-tile__glow {
  position: absolute;
  inset: auto -20% -40% auto;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 140, 255, 0.18) 0%, transparent 68%);
  pointer-events: none;
}
.ib-socials .icon-tile {
  position: relative;
  z-index: 1;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  flex: none;
  /* site: [data-theme="dark"] .icon-tile flips to a light tile with ink glyph */
  background: var(--ibf-text);
  border: 1px solid var(--ibf-text);
  display: grid;
  place-items: center;
  color: var(--ibf-ink);
}
.ib-socials .icon-tile svg {
  width: 19px;
  height: 19px;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}
@keyframes ibfIconBoost {
  0%   { transform: translateY(0) rotate(0) scale(1); }
  35%  { transform: translateY(-4px) rotate(-14deg) scale(1.12); }
  70%  { transform: translateY(-1px) rotate(-8deg) scale(1.05); }
  100% { transform: translateY(-2px) rotate(-10deg) scale(1.06); }
}
.ib-socials .premium-tile:hover .icon-tile svg {
  animation: ibfIconBoost .65s cubic-bezier(.2, .85, .2, 1) both;
}
.ib-socials__body {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.ib-socials__name {
  font-family: var(--ibf-font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: var(--ibf-text);
}
.ib-socials__handle {
  color: var(--ibf-text-dim);
  font-size: 13.5px;
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ib-socials__go {
  position: relative;
  z-index: 1;
  flex: none;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid var(--ibf-line-strong);
  color: var(--ibf-accent-2);
  transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
}
.ib-socials__go svg { width: 15px; height: 15px; display: block; }
.ib-socials .premium-tile:hover .ib-socials__go {
  background: var(--ibf-accent);
  border-color: var(--ibf-accent);
  color: #fff;
  transform: translate(2px, -2px);
}
/* Narrow tiles (five networks in one row): drop the arrow so the handle stays readable. */
.ib-socials__grid > .premium-tile { container-type: inline-size; }
@container (max-width: 250px) {
  .ib-socials__go { display: none; }
}
@media (max-width: 640px) {
  .socials.ib-socials { padding: 28px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ib-socials .premium-tile,
  .ib-socials .premium-tile::before,
  .ib-socials .icon-tile svg,
  .ib-socials__go { transition: none; animation: none; }
  .ib-socials .premium-tile:hover { transform: none; }
}

/* ========================================================== scroll to top
   components/scroll-to-top.njk — fixed round control in the site's
   .cart-btn / pill language. Hidden until the page has been scrolled. */
.ib-totop-wrap { display: contents; }
.ib-totop {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 1025;
  width: 46px;
  height: 46px;
  padding: 0;
  margin: 0 0 var(--ib-totop-lift, 0px);
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid var(--ibf-line-strong);
  background: color-mix(in srgb, var(--ibf-panel) 82%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: var(--ib-totop-color, #fff);
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 14px 30px -16px rgba(0, 0, 0, 0.8), 0 8px 18px -12px rgba(var(--ibf-accent-rgb), 0.55);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) scale(.94);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .22s,
    border-color .18s ease, background .18s ease, box-shadow .18s ease;
  -webkit-tap-highlight-color: transparent;
}
.ib-totop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
  transition: opacity .22s ease, transform .22s cubic-bezier(.2, .8, .2, 1), visibility 0s,
    border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.ib-totop--lifted { bottom: max(92px, env(safe-area-inset-bottom)); }
.ib-totop:hover {
  border-color: rgba(var(--ibf-accent-rgb), 0.55);
  background: color-mix(in srgb, var(--ibf-accent) 16%, var(--ibf-panel));
  box-shadow: 0 14px 30px -16px rgba(0, 0, 0, 0.8), 0 10px 22px -10px rgba(var(--ibf-accent-rgb), 0.75);
}
.ib-totop.is-visible:hover { transform: translateY(-2px); }
.ib-totop:active { transform: translateY(0) scale(.96); }
.ib-totop:focus-visible {
  outline: 2px solid var(--ibf-accent);
  outline-offset: 3px;
}
.ib-totop i,
.ib-totop svg {
  display: block;
  width: 1em;
  height: 1em;
  line-height: 1;
  text-align: center;
  pointer-events: none;
}
@media (max-width: 640px) {
  .ib-totop {
    right: max(14px, env(safe-area-inset-right));
    bottom: max(14px, env(safe-area-inset-bottom));
    width: 44px;
    height: 44px;
  }
  .ib-totop--lifted { bottom: max(84px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .ib-totop,
  .ib-totop.is-visible { transition: none; }
}
@media print {
  .ib-totop { display: none !important; }
}
/* Visual editor: keep the control in the flow so its toolbar can be reached. */
.builder .ib-totop-wrap {
  display: flex;
  justify-content: flex-end;
  padding: 18px;
  min-height: 82px;
}
.builder .ib-totop-wrap .ib-totop {
  position: static;
  margin: 0;
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}