.zm-hero {
  padding: .75rem 0 2.5rem;
}
.zm-intro {
  max-width: 36rem;
  margin: 0 auto .9rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  text-align: center;
}
.zm-intro .section-title {
  color: #f0ece4;
  font-size: 1.35rem;
  margin-bottom: .35rem;
}
.zm-lead {
  max-width: 34rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
  color: rgba(240, 236, 228, .72);
  font-size: .95rem;
}
.zm-shell {
  margin-top: 0;
  background: radial-gradient(ellipse 70% 50% at 80% 20%, rgba(201, 162, 78, .16), transparent 50%),
    linear-gradient(165deg, var(--night) 0, var(--night-mid) 70%);
  color: #f0ece4;
  border-radius: calc(var(--radius) + .4rem);
  padding: 1.15rem 1.1rem 1.25rem;
  border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: var(--shadow);
}
.zm-body {
  display: flex;
  flex-direction: column;
}
.zm-dial {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.zm-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}
.zm-modes {
  display: flex;
  gap: .35rem;
  padding: .2rem;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, .06);
}
.zm-mode {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(240, 236, 228, .72);
  font: inherit;
  font-size: .82rem;
  font-weight: 600;
  padding: .4rem .75rem;
  border-radius: var(--radius-pill);
  cursor: pointer;
}
.zm-mode.is-on {
  background: var(--gold);
  color: var(--night);
}
.zm-today {
  margin: 0;
  font-size: .82rem;
  color: rgba(240, 236, 228, .7);
}
.zm-today strong {
  color: var(--gold-light);
  font-variant-numeric: tabular-nums;
}
.zm-dhikr-scroll {
  display: flex;
  gap: .4rem;
  overflow-x: auto;
  margin: 1rem 0 .85rem;
  padding-bottom: .2rem;
  scrollbar-width: none;
}
.zm-dhikr-scroll::-webkit-scrollbar { display: none; }
.zm-chip {
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid rgba(255, 255, 255, .14);
  background: transparent;
  color: rgba(240, 236, 228, .85);
  font: inherit;
  font-size: .78rem;
  font-weight: 600;
  padding: .35rem .7rem;
  border-radius: var(--radius-pill);
  cursor: pointer;
}
.zm-chip.is-on {
  border-color: transparent;
  background: rgba(201, 162, 78, .2);
  color: var(--gold-light);
}
.zm-ar {
  margin: .2rem 0 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 4vw, 1.7rem);
  line-height: 1.45;
  color: #fff;
}
.zm-tr {
  margin: .15rem 0 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--gold-light);
}
.zm-mean {
  margin: .35rem auto .9rem;
  max-width: 26rem;
  text-align: center;
  font-size: .9rem;
  color: rgba(240, 236, 228, .68);
}
.zm-targets {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .4rem;
}
.zm-target,
.zm-custom input {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .04);
  color: #f0ece4;
  font: inherit;
  font-weight: 600;
  border-radius: var(--radius);
  min-width: 3.1rem;
  padding: .4rem .55rem;
  text-align: center;
  cursor: pointer;
}
.zm-target.is-on {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--night);
}
.zm-custom input {
  width: 5.2rem;
  cursor: text;
}
.zm-custom input:focus {
  outline: 2px solid rgba(201, 162, 78, .7);
  outline-offset: 1px;
}
.zm-tap {
  display: block;
  margin: 1.15rem auto .4rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.zm-ring {
  --zm-p: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(68vw, 250px);
  height: min(68vw, 250px);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 45%, #1c3a32 0 62%, transparent 63%),
    conic-gradient(var(--gold) calc(var(--zm-p) * 1%), rgba(255, 255, 255, .1) 0);
  box-shadow: inset 0 0 0 1px rgba(201, 162, 78, .35), 0 16px 40px rgba(0, 0, 0, .28);
  transition: transform .08s ease;
}
.zm-tap:active .zm-ring,
.zm-tap.is-press .zm-ring {
  transform: scale(.97);
}
.zm-count {
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 12vw, 4.4rem);
  font-weight: 600;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.zm-count.is-bump {
  animation: zm-bump .16s ease;
}
@keyframes zm-bump {
  50% { transform: scale(1.06); }
}
.zm-of {
  margin-top: .15rem;
  font-size: .95rem;
  color: var(--gold-light);
  font-variant-numeric: tabular-nums;
}
.zm-left,
.zm-done,
.zm-hint {
  margin: .35rem 0 0;
  text-align: center;
  font-size: .88rem;
  color: rgba(240, 236, 228, .7);
}
.zm-done {
  color: var(--gold-light);
  font-weight: 600;
}
.zm-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .4rem;
  margin-top: .9rem;
}
.zm-act {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .04);
  color: #f0ece4;
  font: inherit;
  font-size: .8rem;
  font-weight: 600;
  padding: .45rem .7rem;
  border-radius: var(--radius);
  cursor: pointer;
}
.zm-act:disabled {
  opacity: .4;
  cursor: default;
}
.zm-act.is-off {
  color: rgba(240, 236, 228, .45);
  text-decoration: line-through;
}
.zm-hint {
  font-size: .75rem;
  margin-top: .7rem;
}
.zm-aside {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.15rem 1.2rem 1.25rem;
  box-shadow: var(--shadow-soft);
}
.zm-aside-kicker {
  margin: 0 0 .4rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sand);
}
.zm-steps {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
}
.zm-steps li {
  margin: .3rem 0;
}
.zm-faq-list .faq-item {
  margin-bottom: .65rem;
}
.page-zikirmatik .content-prose > h2:first-child {
  margin-top: 0;
}
.page-zikirmatik .content-prose ol {
  margin: .35rem 0 1rem;
  padding-left: 1.2rem;
  color: var(--ink-soft);
}
.page-zikirmatik .content-prose li {
  margin: .4rem 0;
}
.page-zikirmatik .content-prose a:not(.btn-teal):not(.btn-ghost) {
  color: var(--teal);
}
.page-zikirmatik .content-prose .btn-teal,
.page-zikirmatik .content-prose .btn-teal:hover {
  color: #fff;
}
.zm-aside-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.page-zikirmatik .content-prose .zm-aside {
  margin: 1rem 0 0;
}
@media (max-width: 991.98px) {
  .zm-aside { margin-top: 1.5rem; }
  .zm-guide-grid {
    display: flex;
    flex-direction: column;
    gap: .85rem;
  }
}
@media (min-width: 768px) {
  .zm-hero { padding-top: 1rem; }
}
@media (min-width: 992px) {
  .zm-intro {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .zm-lead { margin-left: auto; margin-right: auto; }
  .zm-shell {
    padding: 1.6rem 1.75rem 1.4rem;
  }
  .zm-guide-grid {
    column-count: 2;
    column-gap: 1.25rem;
  }
  .zm-guide-grid > .content-prose {
    break-inside: avoid;
    display: inline-block;
    width: 100%;
    margin-bottom: 1.25rem;
  }
  .zm-dhikr-scroll {
    flex-wrap: wrap;
    overflow: visible;
    margin-bottom: 1.25rem;
  }
  .zm-body {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2rem 3.5rem;
  }
  .zm-copy {
    flex: 1 1 22rem;
    max-width: 36rem;
    text-align: left;
  }
  .zm-ar,
  .zm-tr,
  .zm-mean {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
  }
  .zm-ar { font-size: 2rem; }
  .zm-tr { font-size: 1.85rem; }
  .zm-mean { max-width: 28rem; font-size: 1rem; }
  .zm-targets { justify-content: flex-start; }
  .zm-ring { width: 280px; height: 280px; }
  .zm-tap { margin: 0; }
  .zm-actions { margin-top: 1.35rem; }
}
