* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
  width: 100%; height: 100%;
  background: #000;
  color: #fff;
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
body {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
canvas {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  display: block;
  touch-action: none;
}

/* Phase label — centred below canvas area */
#phaseWrap {
  position: fixed; bottom: 25%; left: 50%;
  transform: translateX(-50%);
  height: 30px; width: 200px;
  z-index: 5;
  display: flex; justify-content: center; align-items: center;
}
.phaseLabel {
  position: absolute;
  font-size: 16px; letter-spacing: 4px; font-weight: 300;
  text-transform: uppercase;
  opacity: 0; transition: opacity 0.3s;
}
.phaseLabel.inhale { color: rgba(100,200,230,0.85); }
.phaseLabel.hold   { color: rgba(230,200,150,0.8); }
.phaseLabel.exhale { color: rgba(240,185,155,0.8); }

/* Pattern dots */
#dots {
  position: fixed; bottom: 15%;
  left: 50%; transform: translateX(-50%);
  display: flex; gap: 8px; align-items: center;
  z-index: 5;
}
.dot {
  width: 10px; height: 10px; border-radius: 50%;
  transition: all 0.3s; cursor: pointer;
}
.dot.active { background: #8aacff; opacity: 0.9; }
.dot.inactive { background: #555; opacity: 0.5; }

/* Mode label */
#modeLabel {
  position: fixed; bottom: 11%;
  left: 50%; transform: translateX(-50%);
  font-size: 15px; letter-spacing: 3px; font-weight: 300;
  color: rgba(255,255,255,0.5);
  z-index: 5; transition: opacity 0.3s;
}

/* Donate block — bottom center, slow fade after 5 cycles */
#donateBlock {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%);
  z-index: 5; opacity: 0;
  transition: opacity 2s ease;
  text-align: center;
}
#donateBlock.visible { opacity: 1; }
#donateBlock a {
  color: rgba(255,255,255,0.35); font-size: 15px;
  text-decoration: none; letter-spacing: 0.5px;
  font-weight: 300;
  transition: color 0.3s;
}
#donateBlock a:hover { color: rgba(255,255,255,0.6); }

/* Sound toggle — top-right */
#soundToggle {
  position: fixed; top: 20px; right: 20px;
  font-size: 22px; cursor: pointer;
  opacity: 0.6; color: #ccc;
  z-index: 10; transition: opacity 0.3s;
}
#soundToggle:hover { opacity: 1; }
#soundToggle.muted { opacity: 0.3; }
