/**
 * IBC page loader — extracted from landing_7
 * Drop-in: link this file + include the HTML markup + preloader.js
 */

.ibc-loader {
  --ibc-loader-paper: #f2f1ef;
  --ibc-loader-paper-2: #eae8e3;
  --ibc-loader-ink: #2e3033;
  --ibc-loader-ink-soft: #4c4f54;
  --ibc-loader-serif: "Fraunces", "Georgia", serif;
  --ibc-loader-mono: "IBM Plex Mono", "SFMono-Regular", monospace;
  --ibc-loader-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ibc-loader-ease-io: cubic-bezier(0.65, 0, 0.35, 1);

  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  background: var(--ibc-loader-paper);
  transition: transform 0.8s var(--ibc-loader-ease-io) 0.1s;
}

.ibc-loader.is-done {
  transform: translateY(-100%);
}

.ibc-loader__bars {
  position: absolute;
  inset: 0;
  display: flex;
}

.ibc-loader__bars span {
  flex: 1;
  background: var(--ibc-loader-paper-2);
  transform-origin: bottom;
  animation: ibc-loader-bar 1.1s var(--ibc-loader-ease-io) both;
  animation-delay: calc(var(--i, 0) * 0.04s);
}

.ibc-loader__bars span:nth-child(1) { --i: 3; }
.ibc-loader__bars span:nth-child(2) { --i: 7; }
.ibc-loader__bars span:nth-child(3) { --i: 1; }
.ibc-loader__bars span:nth-child(4) { --i: 9; }
.ibc-loader__bars span:nth-child(5) { --i: 5; }
.ibc-loader__bars span:nth-child(6) { --i: 11; }
.ibc-loader__bars span:nth-child(7) { --i: 2; }
.ibc-loader__bars span:nth-child(8) { --i: 8; }
.ibc-loader__bars span:nth-child(9) { --i: 4; }
.ibc-loader__bars span:nth-child(10) { --i: 10; }
.ibc-loader__bars span:nth-child(11) { --i: 6; }
.ibc-loader__bars span:nth-child(12) { --i: 12; }

@keyframes ibc-loader-bar {
  from { transform: scaleY(1); }
  to { transform: scaleY(0); }
}

.ibc-loader__mark {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 6px;
  animation: ibc-loader-mark 0.9s var(--ibc-loader-ease) both 0.15s;
}

@keyframes ibc-loader-mark {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

.ibc-loader__title {
  font-family: var(--ibc-loader-serif);
  font-weight: 300;
  font-size: clamp(2.5rem, 8vw, 4rem);
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--ibc-loader-ink);
}

.ibc-loader__sub {
  font-family: var(--ibc-loader-mono);
  font-size: 0.66rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ibc-loader-ink-soft);
}

@media (prefers-reduced-motion: reduce) {
  .ibc-loader__bars span,
  .ibc-loader__mark {
    animation: none;
  }

  .ibc-loader {
    transition-duration: 0.01ms;
  }
}
