/* Blog article — read progress floater (Figma ReadStatus 840:20963) */

.blog-read-status {
  --blog-read-fill: 0;
  position: fixed;
  top: 12px;
  left: 50%;
  z-index: 900;
  width: min(320px, calc(100vw - 32px));
  transform: translate(-50%, -12px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    top var(--navbar-scroll-hide-duration) var(--navbar-scroll-hide-ease),
    opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.35s;
}

.blog-read-status--active {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.blog-read-status--navbar-visible {
  top: calc(var(--navbar-height) + 12px);
}

.blog-read-status--navbar-visible.blog-read-status--active {
  transform: translate(-50%, 0);
}

.blog-read-status[hidden] {
  display: none !important;
}

.blog-read-status__panel {
  --blog-read-panel-bg: rgba(250, 253, 252, 0.7);
  --blog-read-panel-blur: 3.5px;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: var(--padding);
  border-radius: var(--radius-card);
  box-sizing: border-box;
  overflow: hidden;
}

/* Frosted surface + gradient inner glow (Figma ReadStatus 840:20963) */
.blog-read-status__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: var(--blog-read-panel-bg);
  backdrop-filter: blur(var(--blog-read-panel-blur));
  -webkit-backdrop-filter: blur(var(--blog-read-panel-blur));
  pointer-events: none;
}

.blog-read-status__panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  box-shadow:
    inset 0 0 5px 0 var(--color-pink),
    inset 0 0 20px 0 var(--color-cyan-light);
  pointer-events: none;
}

@supports not (backdrop-filter: blur(1px)) {
  .blog-read-status__panel::before {
    background: color-mix(in srgb, var(--color-bg) 92%, transparent);
  }
}

.blog-read-status__head {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 1.2em;
  /* LTR row: document icon sits visually left of the percentage label */
  direction: ltr;
}

.blog-read-status__icon {
  flex-shrink: 0;
  display: block;
  width: 20px;
  height: 20px;
  color: var(--color-black);
}

.blog-read-status__percent {
  display: inline-block;
  vertical-align: middle;
  font-size: var(--font-subtitle);
  font-weight: 400;
  line-height: normal;
  color: var(--color-black);
  direction: rtl;
}

.blog-read-status__percent-viewport {
  display: inline-block;
  height: 1.2em;
  line-height: 1.2em;
  overflow: hidden;
  vertical-align: middle;
  min-width: 3ch;
  text-align: center;
}

.blog-read-status__percent-track {
  display: flex;
  flex-direction: column;
  align-items: center;
  will-change: transform;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.blog-read-status__percent-row {
  flex-shrink: 0;
  height: 1.2em;
  line-height: 1.2em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.blog-read-status__scroll {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 100%;
  height: 4px;
  border-radius: 999px;
  overflow: hidden;
  background: var(--color-white);
}

.blog-read-status__scroll-fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--color-black);
  transform-origin: right center;
  transform: scaleX(var(--blog-read-fill, 0));
  will-change: transform;
  transition: background 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.blog-read-status--complete .blog-read-status__scroll-fill {
  background: var(--color-green-dark);
}

@media (prefers-reduced-motion: reduce) {
  .blog-read-status {
    transform: translate(-50%, 0);
    transition:
      top var(--navbar-scroll-hide-duration) var(--navbar-scroll-hide-ease),
      opacity 0.2s ease,
      visibility 0.2s;
  }

  .blog-read-status--active {
    transform: translate(-50%, 0);
  }

  .blog-read-status__scroll-fill {
    transition: background 0.35s ease;
  }

  .blog-read-status__percent-track {
    transition: none;
  }
}
