/* =========================
   BREATHE PAGE STYLES (page-specific)
   ========================= */

.breath-card {

  /* keep card padding tighter for this UI */
  padding: 26px 26px 18px;
  text-align: left;
}


.breath-card .topbar {
  margin-bottom: 18px;
}
.pattern-top {
  margin-bottom: 14px;
  min-height: 20px;
}

/* Orb */
.orb-phase,
.orb-count,
.pattern-top {
  will-change: opacity;
}

.orb-area {
  margin-top: 18px;
  display: grid;
  place-items: center;
  padding: 36px 12px 20px;
}

.orb {
  width: 260px;
  height: 260px;
  border-radius: 999px;
  border: 1px solid var(--accent);

  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,0.22), transparent 55%),
    radial-gradient(circle at 60% 70%, rgba(0,0,0,0.10), transparent 60%);

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.06),
    0 26px 90px rgba(0,0,0,0.18);

  transform: scale(0.78);
  transition: transform 800ms cubic-bezier(0.22, 1, 0.36, 1);

  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
}

.orb-ui {
  text-align: center;
  user-select: none;
  line-height: 1.05;
}

.orb-phase {
  color: var(--text-soft);
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  min-height: 18px;
}

.orb-count {
  margin-top: 6px;
  font-size: 56px;
  letter-spacing: 0.02em;
  color: var(--text);
  opacity: 1;
  min-height: 58px;
}

/* Hold pulse */
@keyframes holdPulse {
  0%   { transform: scale(var(--hold-base, 1.00)); }
  50%  { transform: scale(calc(var(--hold-base, 1.00) + 0.02)); }
  100% { transform: scale(var(--hold-base, 1.00)); }
}
.orb.holding {
  transition: none;
  animation: holdPulse 2.2s ease-in-out infinite;
}

@media (max-width: 520px) {
  .orb { width: 220px; height: 220px; }
  .orb-count { font-size: 48px; min-height: 50px; }
}
