/* Dab.Ninja Countdown Timer — v1.4.0 — author: missioncore.net */

.dnc-wrap *,
.dnc-wrap *::before,
.dnc-wrap *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Centred block by default */
.dnc-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
  font-family: inherit;
}

/* ── Wheel ── */
.dnc-wheel-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  cursor: crosshair;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.dnc-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.dnc-track {
  fill: none;
  stroke: #d9d9d9;
  stroke-width: 22;
}

.dnc-progress {
  fill: none;
  stroke: #111;
  stroke-width: 22;
  stroke-linecap: round;
  transform-box: fill-box;
  transform-origin: center;
  transform: rotate(-90deg);
  transition: stroke-dashoffset 0.12s linear, stroke 0.25s ease;
}

.dnc-wrap[data-dragging] .dnc-progress {
  transition: stroke 0.25s ease;
}

.dnc-handle {
  fill: #111;
  r: 8;
  cursor: grab;
  transition: r 0.15s ease;
}

.dnc-wrap[data-dragging] .dnc-handle {
  cursor: grabbing;
  r: 10;
}

/* ── Centre ── */
.dnc-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  text-align: center;
}

/* Inherits theme H2 — size, weight, family all come from theme */
.dnc-digits {
  display: block;
  color: #111;
  cursor: pointer;
  pointer-events: all;
  user-select: none;
  -webkit-user-select: none;
  line-height: 1;
  text-align: center;
  width: 100%;
  transition: opacity 0.1s;
}

.dnc-digits:hover { opacity: 0.55; }

/* GO state — bold + flash for ~1.5 s */
.dnc-digits.is-go {
  font-weight: 700;
  animation: dnc-flash 1.5s ease-out forwards;
}

@keyframes dnc-flash {
  0%    { opacity: 1; }
  10%   { opacity: 0; }
  22%   { opacity: 1; }
  34%   { opacity: 0; }
  46%   { opacity: 1; }
  100%  { opacity: 1; }
}

/* ── Controls ── */
.dnc-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.dnc-btn {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: #111;
  cursor: pointer;
  border-radius: 50%;
  transition: opacity 0.15s;
}

.dnc-btn-play {
  width: 76px;
  height: 76px;
}

.dnc-btn:hover  { opacity: 0.45; }
.dnc-btn:active { opacity: 0.2;  }
.dnc-btn svg    { fill: currentColor; display: block; }
